home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games: Greatest Hits 1996 / Amiga Games: Greatest Hits 1996.iso / archive / spiele / demoversionen / doopsi.lha / Doopsi / docs / DOOPSI_Ita.guide (.txt) < prev    next >
Amigaguide Document  |  1996-07-02  |  111KB  |  2,385 lines

  1. *************
  2. Introduzione.
  3. *************
  4. Il nome del gioco.
  5. Doopsi-GS significa:  Dinamical Object Oriented Programming System
  6. Interface - Game System.  Abbiamo dato questo nome al nostro programma per
  7. vari motivi:  ci ricorda Boopsi, ovvero l'interfaccia Intuition Orientata
  8. agli Oggetti del nostro beneamato Amiga; 
  9.  un programma Orientato agli
  10. Oggetti nel senso tecnico del termine, cio
  11.  per quanto riguarda la sua
  12. struttra interna (qualche notizia di questa struttura 
  13.  riportata nell'
  14. Appendice C); 
  15.  un'Interfaccia di Programmazione poich
  16.  semplifica il
  17. compito di programmazione rendendolo completamente automatico e veloce.
  18. Questo Sistema di Programmazione 
  19.  molto diverso dagli altri prodotti
  20. dedicati al medesimo scopo poich
  21.  estemamente semplice da usare, anche
  22. per coloro che avessero poca abilit
  23.  di programmazione:  l'utente disegna
  24. tutta la grafica e fornisce tutti i suoni e le musiche di cui necessita e
  25. poi il nostro programma mette tutto assieme.  L'idea che giace sotto il
  26. funzionamento di questo programma 
  27.  immediata:  voi definite prima di tutto
  28. le scene, poi ponete alcuni oggetti in esse e, infine, specificate come
  29. ciascun oggetto deve reagire quando il giocatore agisce su di esso (questa
  30.  l'unica parte di programmazione che dovete affrontare).  Per essere
  31. sincero vi sono altre parti del lavoro che non ho incluso nella descrizione
  32. precedente, ma le imparerete man mano che verrete maggiormente coinvolti in
  33. Doopsi:  per esempio, uno dei compiti che dovrete affrontare 
  34.  quello di
  35. costruire il percorso lungo il quale l'Omino cammina (l'Omino con la
  36. maiuscola 
  37.  il protagonista dell'avventura), oppure un'altro compito 
  38. quello di scrivere i dialoghi fra l'Omino e qualche altro oggetto, e cos
  39. Queste sono alcune caratteristiche di Doopsi:
  40. - sensibile al sistema operativo (funziona sotto V37+).
  41. - completamente localizzabile (usa la nostra "locator.library" per cambiare
  42.     linguaggio, ma nelle future versioni lo adatteremo alla standard
  43.     "locale.library" se riusciremo a farla funzionare sotto V37).
  44. - compatibile AGA.
  45. - l'Editor 
  46.  completamente system friendly.
  47. - gestisce bitmap pi
  48.  grosse dell'area di schermo (con autoscroll).
  49. - permette di suonare moduli e campionamenti durante il gioco.
  50. - completamente personalizzabile (ad es.: potete anche ridisegnare la
  51.    pulsantiera del Player).
  52. Doopsi 
  53.  costituito da due programmi indipendenti:  l'Editor ed il Player.
  54. Come i loro nomi possono suggerire, l'Editor 
  55.  quello che costruisce
  56. l'avventura, mentre il Player sfrutta i dati prodotti dall'Editor per farvi
  57. giocare.  E' come se l'Editor generasse una specie di programma ed il
  58. Player fosse l'interprete di tale programma:  se si verifica un errore
  59. durante l'esecuzione il Player visualizza un messaggio di errore e, se pu
  60. continua l'elaborazione del gioco, come un qualsiasi interprete di un
  61. qualunque linguaggio farebbe (i linguaggi reali per
  62.  non possono continuare
  63. dopo un errore, ma noi siamo migliori e possiamo!).
  64. Il manuale ha la seguente struttura:  questa sezione introduttiva 
  65.  seguita
  66. dalla descrizione della procedura di installazione.  Poi iniziamo con la
  67. Finestra Principale dell'Editor Doopsi, contenente la descrizione di tutti
  68. i (numerosi) bottoni che appaiono (non vi spaventate, imparerete presto ad
  69. usarli).  Dopo la Finestra Principale vi sono tre sezioni dedicate ai tre
  70. editor relativi alla costruzione della scena:  il Path Editor, lo Spot
  71. Editor e lo Screen Attributes Editor.  Seguono le sezioni dedicate agli
  72. oggetti e che descrivono rispettivamente:  l'Object Attributes Editor, il
  73. Doopsi Coder e l'Anim Editor.  Rimangono solo due editor, e questi
  74. costituiscono il soggetto delle sezioni seguenti:  il Dialog Editor e
  75. l'Editor di Preferenze.  La parte principale del manuale 
  76.  finita ma
  77. abbiamo anche tre appendici:  la prima descrive tutte le istruzioni del
  78. Linguaggio Doopsi (il Linguaggio Doopsi 
  79.  usato nel Doopsi Coder per
  80. programmare gli oggetti); la seconda descrive il profilo della console
  81. inclusa nel pacchetto (la console 
  82.  la parte bassa del gioco, quella con le
  83. azioni); e la terza contiene alcuni dettagli tecnici a proposito della
  84. struttura interna degli Oggetti Doopsi (questa non 
  85.  necessaria ad una
  86. prima lettura, ma 
  87.  inclusa per utenti pi
  88.  esperti (o pi
  89.  curiosi)).  Anche
  90. il Player abbisogna di un minimo di spiegazione, e lo descriviamo
  91. nell'ultima sezione del manuale, situata dopo tutte le appendici.  Questo 
  92. tutto, gente.
  93. Una osservazione:  probabilmente questo manuale 
  94.  un po' caotico, nel senso
  95. che le informazioni utili sono sparpagliate ovunque e nascoste fra mucchi
  96. di rifiuti.  Questo significa che dovete essere pi
  97.  attenti nel leggere, in
  98. modo da non saltare alcune nozioni interessanti (e vitali).  Siamo
  99. spiacenti, ma questa 
  100.  solo la prima versione e continueremo a sistemarla
  101. in modo da migliorarla.  Dunque ogni commento 
  102.  gradito, e terremo anche
  103. una lista di FAQ nelle nostre pagine Web.
  104. ---------------------------------------------------------------------------
  105. ***************************************************
  106. Gli autori (la parte pi
  107.  interessante del manuale):
  108. ***************************************************
  109. questa 
  110.  la situazione fino al 27 - 6 - 1996 (data del primo upload):
  111. Andrea si 
  112.  appena laureato in Fisica all'Universit
  113.  di Milano, e sta
  114. studiando per entrare in un corso di Dottorato.
  115. Fabio sta lavorando come capo progetto presso la DeAgostini Multimedia
  116. di Milano. Ama gli Amiga, i dolci, le ragazze, divertirsi, programmare a
  117. oggetti e DOOPSI ;)
  118. I nostri indirizzi sono:
  119.       Fabio Rotondo                    Andrea Galimberti
  120.       c.so Vercelli, 9                 via Villoresi, 87
  121.       28100 Novara                     20029 Turbigo (Mi)
  122.       Italia                           Italia
  123.       E-Mail: fsoft@intercom.it
  124.       Phone: (ITA) - (0)321 - 459676   Phone: (ITA) - (0)331 - 871009
  125. Le pagine Web sono:
  126.       http://www.intercom.it/~fsoft/doopsi.html    -> DOOPSI Home Page!!!
  127.       http://www.intercom.it/~fsoft                -> Fabio Soft Home Page
  128. DOOPSI Mailing list:
  129.       per iscriversi mandare una mail a:
  130.          fsoft@intercom.it
  131.       con:
  132.          SUBSCRIBE DOOPSI your_name@your_email.addr
  133.       nel corpo del messaggio.
  134. ---------------------------------------------------------------------------
  135. ***************
  136. Ringraziamenti:
  137. ***************
  138. Mik and Gio of ClassX:   per alcune utili routine. Per il loro supporto,
  139.                          per le loro idee, per essere loro.
  140. Giorgio Fornara:     per la grandiosa grafica della Demo che non 
  141.  inclusa
  142.                      in questo pacchetto, ma che apparir
  143.  il pi
  144.  presto
  145.                      possibile. Ha anche disegnato il logo di Doopsi che
  146.                      appare sullo schermo dell'Editor.
  147. Andrea Rotondo:      per la grafica del Tutorial.
  148. Stefano Clemente:    per il beta-testing.
  149. Lele e Paolo di Intercom: per aver creato la DOOPSI - Mailing list.
  150. Max Galimberti:      per aver controllato questo manuale.
  151. *******
  152. Saluti:
  153. *******
  154. da Andrea a Laura: per avermi sopportato fino ad ora.
  155. da Fabio alla sua mamma (e anche al suo pap
  156. ---------------------------------------------------------------------------
  157. ********************************
  158. ACCORDO DI LICENZA PER DOOPSI-GS
  159. ********************************
  160. I. DIRITTI E RESTRIZIONI DI QUESTA LICENZA
  161. Fabio Rotondo e Andrea Galimberti (gli "autori") vi assicurano
  162. il diritto non-esclusivo, non-assegnabile di usare il software
  163. DOOPSI-GS incluso come eseguibile ("DOOPSI") su di un massimo di 1
  164. computer system alla volta. Non potete effettuare reverse engeneering,
  165. decompilare, o dissassemblare DOOPSI, non rispettare queste restrizioni
  166. e' espressamente proibito dalle leggi vigenti. Non potete prestare o
  167. affittare DOOPSI, o trasferire DOOPSI in altro modo e il materiale
  168. scritto che lo accompagna.
  169. Tutti i diritti non espressamente citati sono riservati dagli autori.
  170. II. NESSUNA GARANZIA
  171. DOOPSI e il materiale scritto che lo accompagna e' fornito "cosi' com'e'",
  172. senza alcuna garanzia di alcun tipo. Per quanto consentito dalla legge,
  173. gli autori scaricano tutte le responsabilita', sia implicite che
  174. esplicite, comprese implicite garanzie di vendibilita', utilita'
  175. per un compito particolare e di non violazione. Gli interi rischi
  176. derivanti dall'uso o dal comportamento di DOOPSI e del materiale
  177. scritto che l'accompagna rimangono a voi.
  178. III. NESSUN OBBLIGO PER DANNI CONSEGUENTI L'USO
  179. Per quanto consentito dalla legge: in alcun caso gli autori o i
  180. loro collaboratori potranno essere accusati per qualsiasi danno
  181. (compresi, senza limitazione, danni per profitti di affari,
  182. interruzione degli affari, perdita di dati commerciali, o qualsiasi
  183. possibilita' di perdita monetaria) derivante dall'uso o dalla
  184. inadeguatezza di usare DOOPSI, persino se gli autori sono stati
  185. avvisati della possibilita' di tali danni. Dal momento che
  186. alcuni stati/giurisdizioni non permettono l'esclusione o la limitazione
  187. di garanzia per danni consequenziali o incidentali, questa limitazione
  188. potrebbe non riguardarvi.
  189. IV. COPIA E DISTRIBUZIONE
  190. Siete autorizzati a distribuire e copiare questo documento con
  191. tutto il resto dell'archivio, solo se il programma e' una versione
  192. "SHAREWARE" o "SPECIAL EDITION". La "SPECIAL EDITION" non puo' essere
  193. distribuita su Aminet o in qualsiasi BBS e non puo' comparire in
  194. alcuna rivista senza il permesso scritto degli autori.
  195. Voi potete, e siete invitati a farlo, copiare e distribuire la versione
  196. originale di DOOPSI SHAREWARE VERSION, ma NON DOVETE COPIARE in qualsiasi
  197. forma la DOOPSI REGISTERED VERSION (versione registrata), eccezion fatta
  198. per l'utilizzo personale.
  199. V. VARIE
  200. Se avete acquistato questo prodotto negli Stati Uniti, questo Accordo e'
  201. soggetto alle leggi dello Stato di Washington. Se avete acquistato
  202. questo prodotto fuori dagli Stati Uniti, verranno applicate le leggi
  203. locali. Se una qualsiasi parte esterna si arroca dei diritti derivanti
  204. dal presente Accordo, la parte prevalente potrebbe essere autorizzata a
  205. richiedere somme di denaro per il risarcimento per l'offesa, i costi e le
  206. spese.
  207. ---------------------------------------------------------------------------
  208. **************
  209. Installazione.
  210. **************
  211.  uno script per l'Installer che svolge questo compito, ma per coloro
  212. che desiderassero farlo a mano descriveremo cosa deve essere installato e
  213. dove.  (A proposito:  per usare lo script dovete possedere l'Installer e
  214. l'utility Lha.)
  215. I tre archivi hanno gi
  216.  la struttura finale delle directory.  Dovete prima
  217. estrarre l'archivio Programs.lha; quest'ultimo crea due directory:  una
  218. contiene l'Editor e l'altra contiene il Player.  Vi 
  219.  anche una terza
  220. directory in cui potete trovare due librerie:  la "locator.library" e la
  221. famosa "reqtools.library"; dovete copiare queste librerie nella vostra
  222. directory Libs:.  L'ultimo passo consiste nel fare la seguente
  223. assegnazione:  Assign Doopsi: alla directory dell'Editor.
  224. La lingua di default 
  225.  l'inglese, ma sono forniti anche i cataloghi per
  226. installare l'italiano:  dovete solo estrarre l'archivio Catalogs.lha nella
  227. stessa directory dove avete messo il cassetto dell'Editor (non NEL cassetto
  228. dell'Editor, ma VICINO a tale cassetto).  Questo crea una directory
  229. Catalogs nel cassetto dell'Editor ed aggiunge anche il file
  230. "player.catalog" nella directory "Editor/Data".
  231. Poi dovete estrarre l'archivio Tutorial.lha nella stessa directory dove
  232. avete messo il cassetto dell'Editor (non NEL cassetto dell'Editor, ma
  233. VICINO a tale cassetto):  questo crea una directory Tutorial nel cassetto
  234. dell'Editor, dove potete trovare un po' di grafica per iniziare
  235. immediatamente.
  236. Per riassumere:  gli archivi son stati costruiti in modo tale che, se li
  237. estraete tutti nella medesima directory, il loro contenuto finir
  238.  nei posti
  239. giusti.
  240. La struttura risultante delle directory 
  241.       Editor
  242.       |
  243.       +---Catalogs
  244.       |
  245.       +---Docs
  246.       |
  247.       +---palettes
  248.       |
  249.       +---Data
  250.       |
  251.       `---Tutorial
  252.           |
  253.           +---Objects
  254.           |
  255.           +---Berny
  256.           |
  257.           +---Scenes
  258.           |
  259.           `---Sounds
  260.       Player
  261. L'Editor Deve trovare nella propria directory il file "doopsi.dat".  La
  262. directory Catalogs serve solo se volete usare un linguaggio diverso
  263. dall'inglese (per il momento sono forniti solo i cataloghi italiani):
  264. copiate in tale cassetto solo i cataloghi del vostro linguaggio preferito e
  265. lasciate fuori gli altri.
  266. Il Player Deve trovare nella directory che scegliete mediante l'Editor (si
  267. veda la sezione di questo manuale dedicata alla finestra di Preferenze) i
  268. seguenti file:  "player.dat" e "panel.iff".  Il file "panel.iff" 
  269. console che potete cambiare (vedere l'Appendice B).  Il file
  270. "player.catalog" 
  271.  necessario solo se volete usare un linguaggio diverso
  272. dall'inglese, altrimenti potete buttarlo via.
  273. I sorgenti dei cataloghi verranno forniti (se si desidera), insieme agli
  274. eseguibili per crearli, in un pacchetto a parte.
  275. NOTA IMPORTANTE:  L'Editor ha bisogno dell'assegnamento Doopsi:, ma il
  276. Player 
  277.  stato costruito in modo da essere completamente rilocabile (non
  278. necessita di assegnamenti).  Quando caricate il Player da una Shell dovete
  279. semplicemente far diventare la directory del Player quella corrente e poi
  280. chiamare il programma:  il Player cercher
  281.  quindi la directory che avete
  282. selezionato mediante l'Editor (quella di default 
  283.  la directory "Data"
  284. creata dagli archivi), dove Deve trovare i file "player.dat" e "panel.iff".
  285. La linea di comando per caricare il Player 
  286. :  Player nome_file_Doopsi.  Se
  287. dimenticate di fornire il nome del file, il Player apre un file requester e
  288. vi chiede di selezionare un file.
  289. ---------------------------------------------------------------------------
  290. ***********************
  291. La finestra principale.
  292. ***********************
  293. La storia inizia da qui.
  294. Prima di tutto, descriviamo i contenuti della finestra.  La parte pi
  295.  alta
  296.  divisa in due sezioni:  quella di sinistra riguarda le scene, mentre
  297. quella di destra 
  298.  dedicata agli oggetti.  Poi segue una riga contenente
  299. alcuni editor misti e, infine, la riga finale contiene dei gadget dedicati
  300. al caricamento e salvataggio di tutto il vostro lavoro.
  301. Iniziamo con la sezione delle scene.  Per creare una nuova scena dovete
  302. premere il bottone "Nuovo" e, dopo aver selezionato l'immagine di sfondo
  303. mediante il file requester, vi si chiede di inserire il nome della scena:
  304. questo nome 
  305.  l'identificatore che Doopsi usa per indirizzare la scena,
  306. quindi siete invitati a non chiamare due scene con il medesimo nome.  Dopo
  307. che lo sfondo 
  308.  stato visualizzato siete pronti per lavorare su questa
  309. scena (per es.:  posizionando degli oggetti su di essa).  Per selezionare
  310. la scena su cui lavorare dovete usare il gadget "Lista":  cliccate sul nome
  311. desiderato nella lista e poi sul bottone "Ok".  Il gadget "Uccidi" serve
  312. per rimuovere la scena corrente.
  313. Quando premete il bottone "Salva" l'editor vi chiede se volete salvare solo
  314. la scena corrente o tutte le scene create fino ad ora.  Con il gadget
  315. "Carica" potete caricare entrambi i tipi di file:  l'Editor riconosce
  316. automaticamente se il file che avete selezionato contiene una o pi
  317.  scene.
  318. Se gli oggetti agganciati alla scena che volete caricare sono gi
  319.  stati
  320. caricati, allora l'editor pu
  321.  posizionarli immediatamente sulla scena
  322. stessa; se invece caricate gli oggetti dopo che la scena 
  323.  stata caricata,
  324. allora dovete posizionare tali oggetti a mano, cliccando sul gadget "R"
  325. ("R" sta per "ripristina").  Il gadget "Carica" pu
  326.  anche estrarre le
  327. informazioni delle scene da un file salvato con il gadget "Salva Tutto"
  328. posizionato nella fila inferiore della finestra (vedi la descrizione di
  329. tale gadget per informazioni maggiori).
  330. I gadget rimanenti aprono altri editor, e si rimanda alle sezioni del
  331. manuale dedicate a tali editor per informazioni pi
  332.  specifiche.  Il gadget
  333. "Attrs" serve per attivare l'editor degli Attributi delle Scene, dove
  334. potete cambiare alcune caratteristiche della vostra scena; il bottone "Spot
  335. editor" invoca lo Spot Editor per posizionare alcuni Spot sulla scena; il
  336. gadget "Path editor" accede al Path Editor usato per creare il percorso su
  337. cui il vostro Omino dovrebbe camminare.
  338. Ora sapete come creare una nuova scena e siete pronti per posizionarvi
  339. degli oggetti, quindi diamo uno sguardo alla sezione degli oggetti.  Il
  340. gadget "Nuovo" crea un nuovo oggetto ed apre l'editor degli Attributi degli
  341. Oggetti per permettere all'utente di modificare tale oggetto (si veda la
  342. sezione dedicata all'editor degli Attributi per gli Oggetti).  Il gadget
  343. "Lista" visualizza la lista di tutti gli oggetti creati fino ad ora:  per
  344. lavorare su un oggetto dovete renderlo l'oggetto corrente selezionando il
  345. suo nome dalla lista.  Il bottone "Uccidi" rimuove l'oggetto corrente.
  346. Il gadget "Salva" chiede se volete salvare solo l'oggetto corrente o tutti
  347. gli oggetti creati.  Il bottone "Carica" riconosce se il file che avete
  348. selezionato contiene uno o pi
  349.  oggetti e gli aggiunge alla lista.  Questo
  350. bottone pu
  351.  anche estrarre i dati degli oggetti da un file salvato con il
  352. gadget "Salva Tutto".
  353. Il gadget "Attrib" apre l'editor degli Attributi degli Oggetti (quello a
  354. cui accedete automaticamente quando create un nuovo oggetto); il bottone
  355. "Doopsi code" invoca il Doopsi Coder utilizzato per specificare come si
  356. deve comportare il Player quando l'utente agisce su un oggetto; il gadget
  357. "Anim editor" apre l'Anim Editor che vi permette di convertire un oggetto
  358. in un AnimObject costruendo un'animazione a partire dalle sue immagini.
  359. Potete muovere tutti gli oggetti che avete creato e posizionato sulla scena
  360. (utilizzando l'Object Attributes editor) cliccando su di essi con il
  361. bottone sinistro del mouse e (tenendo premuto questo bottone) trascinandoli
  362. all'interno della scena. Cliccando su di essi con il bottone destro del
  363. mouse rendete oggetto corrente l'oggetto selezionato ed invocate l'Object
  364. Attributes editor.
  365. La sezione successiva contiene tre bottoni:  il bottone "Prefs" accede
  366. all'editor delle Preferenze dove potete modificare ad esempio alcuni nomi
  367. che il Player usa come default, o i vostri path preferiti, e cos
  368.  via; il
  369. "Dialog Editor" invoca il Dialog Editor utilizzato per creare dialoghi fra
  370. il vostro Omino e un altro personaggio della vostra storia; il gadget
  371. "Info" vi dice quanti oggetti e scene avete creato fino ad ora e la
  372. quantit
  373.  di memoria disponibile.  Infine il bottone "Prova Gioco" invoca il
  374. Player affinch
  375.  possiate provare immediatamente la vostra avventura:
  376. l'Editor cerca il Player nella directory indicatagli mediante l'apposito
  377. campo situato nella finestra delle Preferenze.
  378. Ora descriviamo l'ultima riga.  Il gadget "Salva Tutto" serve per salvare
  379. tutta l'avventura:  il file contiene scene, oggetti, percorsi, spot,
  380. dialoghi e preferenze, ovvero tutto quello di cui abbisogna il Player per
  381. iniziare il gioco.  Il bottone "Salva Finale" differisce dal gadget "Salva
  382. Tutto" poich
  383.  il file salvato verr
  384.  crittato:  l'Editor vi chiede la chiave
  385. utilizzata per crittare il file.  Abbiamo aggiunto questa opzione poich
  386. questo modo altre persone non possano guardare nel file Doopsi per vedere
  387. come avete costruito la vostra avventura, ma possano comunque giocarci
  388. senza bisogno di conoscere la chiave.  Il gadget "Carica Tutto" vi permette
  389. di caricare un file salvato con il gadget "Salva Tutto" o "Salva Finale",
  390. se volete modificarlo ulteriormente (se il file 
  391.  crittato dovete conoscere
  392. la chiave per decrittarlo prima di caricare i dati contenuti).  Il bottone
  393. "Cancella Tutto" serve per cancellare tutto il vostro precedente lavoro e
  394. ricominciare da capo.  Il bottone "Info su Doopsi" visualizza un piccolo
  395. messaggio che dovreste leggere.
  396. I gadget.
  397. Sezione delle scene:
  398. Nuovo             Crea una nuova scena: vi si chiede di selezionare
  399.                   l'immagine di sfondo e di scrivere il nome della scena.
  400. Carica            Carica un file contenente una o pi
  401.  scene.
  402. Salva             Salva un file contenente dati per le scene: vi si chiede
  403.                   se volete salvare solo la scena corrente o tutte le scene
  404.                   create fino ad ora.
  405. Lista             Lista tutte le scene create e vi permette di muovervi fra
  406.                   le scene selezionando quella corrente.
  407. Uccidi            Cancella la scena corrente.
  408. Attrs             Apre lo Scene Attributes editor.
  409. Spot editor       Invoca lo Spot editor.
  410. Path editor       Accede al Path editor.
  411. R                 Ridisegna lo schermo.
  412. Sezione degli oggetti:
  413. Nuovo             Crea un nuovo oggetto ed apre l'Object Attributes editor
  414.                   per poterlo modificare.
  415. Carica            Carica un file contenente uno o pi
  416.  oggetti.
  417. Salva             Salva un file contenente dati per gli oggetti: vi si
  418.                   chiede se volete salvare solo l'oggetto corrente o tutti
  419.                   gli oggetti creati.
  420. Lista             Lista tutti gli oggetti: potete muovervi fra di essi
  421.                   selezionando quello corrente.
  422. Uccidi            Cancella l'oggetto corrente.
  423. Attrib            Apre l'Object Attributes editor.
  424. Doopsi code       Invoca il Doopsi Coder.
  425. Anim editor       Accede all'Anim editor.
  426. Altri gadget:
  427. Prefs             Apre l'editor delle Preferenze.
  428. Dialog editor     Accede al Dialog editor.
  429. Prova Gioco       Invoca il Player.
  430. Info Progetto     Visualizza alcune informazioni sul vostro lavoro.
  431. Carica Tutto      Carica un file contenente tutti i dati del gioco (se il
  432.                   file 
  433.  crittato vi viene chiesta la chiave per
  434.                   decrittarlo).
  435. Salva Tutto       Salva un file contenente tutti i dati del gioco, cio
  436.                   file utilizzato dal Player.
  437. Salva Finale      Salva un file crittato contenente tutti i dati del gioco:
  438.                   l'Editor vi chiede la chiave per crittare il file.
  439. Canc. Tutto       Elimina tutto il vostro precedente lavoro.
  440. Info su Doopsi    Alcune note a proposito di noi e di Doopsi.
  441. ---------------------------------------------------------------------------
  442. ********************************************
  443. Alcune note su come il Player trova l'Omino.
  444. ********************************************
  445. Questo problema sorge in quanto l'Omino 
  446.  un AnimObject (in realt
  447.  quattro
  448. oggetti:  uno per ogni direzione) come tutti gli altri AnimObject che
  449. potete agganciare al vostro gioco.  Quindi il Player deve sapere quali
  450. oggetti rappresentano il protagonista della storia.  Il nome interno
  451. dell'Omino 
  452.  composto da una radice (quella di default 
  453.  "Omino") ed una
  454. estensione che indica la direzione (ad es.:  A per alto, G per gi
  455. , ecc.):
  456. quindi l'AnimObject contenente l'animazione che rappresenta l'Omino che
  457. cammina verso destra potrebbe essere chiamata (sempre nome interno!)
  458. "OminoD", e cos
  459.  via.  Avete bisogno anche di altri quattro AnimObject
  460. rappresentanti l'Omino che parla nelle quattro direzioni:  il nome di tali
  461. AnimObject 
  462.  costruito a partire dalla radice, aggiungendo ad essa una
  463. prima estensione (quella di default 
  464.  "Parla") e la seconda estensione 
  465. direzione, come prima.  Quindi un nome tipico per l'AnimObject
  466. rappresentante l'Omino che parla verso sinistra 
  467.  "OminoParlaS".
  468. Potete scegliere la radice e le estensioni che preferite scrivendole
  469. nell'editor delle preferenze.
  470. Un'ultima nota a proposito di estensioni.  Il Doopsi Coder contiene
  471. istruzioni utilizzate per muovere (e/o animare) oggetti sulla scena durante
  472. il gioco:  vi si chiede di fornire il nome dell'AnimObject contenente
  473. l'animazione desiderata.  E qui arriva la parte interessante:  se tale nome
  474. termina con una delle quattro estensioni indicanti una direzione, allora il
  475. Player 
  476.  autorizzato a scegliere la direzione che gli serve.  Fa ci
  477. rimuovendo l'estensione e rimpiazzandola con quella indicante la direzione
  478. giusta, poi cerca un AnimObject con il nome risultante dall'operazione
  479. precedente e, se lo trova, lo usa.  Per esempio:  se il nome che avete
  480. selezionato come argomento per l'istruzione SetMoveAnim 
  481.  "VolaD" e la
  482. mosca si deve muovere verso l'alto, allora il Player cerca un AnimObject
  483. chiamato "VolaA".  In altre parole:  l'estensione che voi fornite al
  484. momento della programmazione 
  485.  irrilevante perch
  486.  verr
  487.  rimpiazzata prima
  488. di essere utilizzata, ma essa dice al Player di stare attento alla
  489. direzione.  Per sapere quali istruzioni hanno questa opzione consultate
  490. l'Appendice A.
  491. Osservazioni generali che dovreste leggere:
  492. L'Editor produce un file contenente la struttura della vostra avventura, ma
  493. non la grafica o i suoni che avete agganciato al gioco poich
  494.  non vogliamo
  495. mescolare tutta l'avventura in un solo file enorme; quindi nel file
  496. generato vi sono solo i percorsi dei file agganciati.  Dovete ricordarvi di
  497. questo particolare se volete distribuire il vostro gioco agli amici:  per
  498. esempio, potete far diventare relativi i percorsi utilizzando
  499. un'assegnamento.
  500. ---------------------------------------------------------------------------
  501. ************
  502. Path Editor.
  503. ************
  504. Introduzione.
  505. Il Path Editor si occupa di aiutare il creatore dell'avventura a sviluppare
  506. i percorsi nei quali si muoveranno i vari personaggi.  La creazione dei
  507. percorsi 
  508.  forse una delle cose pi
  509.  complesse e richiede una certa
  510. attenzione.  A ben vedere, il percorso che verr
  511.  creato su di una scena
  512. vincoler
  513.  i movimenti dei personaggi durante il gioco.  Questo deve
  514. necessariamente portare ad una pianificazione ponderata per la creazione
  515. del percorso.
  516. Teoria dei path.
  517. Il percoso, o path, 
  518.  strutturato in nodi, delle unit
  519.  di sosta.  Ogni nodo
  520.  avere delle caratteristiche particolari che permettono un maggiore
  521. controllo del movimento del personaggio sulla scena.  Di queste
  522. caratteristiche parleremo pi
  523.  avanti.  Ogni nodo ha dei "rami" (branch) al
  524. massimo sette per ogni nodo, che permettono di collegarsi ad altri nodi.
  525. Il path determina, attraverso i nodi, la possibilit
  526.  di movimento del
  527. personaggio sulla scena.  Un percorso 
  528.  quindi formato da nodi, uniti tra
  529. loro da collegamenti (branch), in modo da formare una specie di "rete".  I
  530. movimenti del personaggio dell'avventura sulla scena avverr
  531.  appunto su
  532. questa rete, come se i nodi con le loro diramazioni fossero una specie di
  533. "binario invisibile" sul quale il personaggio si muove.  Non 
  534.  possibile,
  535. in alcun modo, muovere il personaggio in zone della scena non raggiungibili
  536. da un nodo.  Se si chiede al personaggio di muoversi in un luogo esterno
  537. alla diramazione del percorso, verr
  538.  raggiunto il punto ritenuto pi
  539.  vicino
  540. a quello richiesto, ma non si andr
  541.  oltre.  Questo aspetto dei path pu
  542. sembrare una limitazione, ma 
  543.  in realt
  544.  una delle caratteristiche che
  545. assicurano una grandissima flessibilit
  546.  a livello di game-design:  per
  547. esempio, 
  548.  possibile creare una scena che racchiude pi
  549.  percorsi e
  550. "vietare" l'accesso a certe aree a meno che non si siano verificate
  551. determinate condizioni.
  552. Con un po' di pratica, riuscirete sicuramente a creare dei percorsi
  553. complessi ed articolati.  Il Path Editor vi assister
  554.  costantemente e con
  555. affidabilit
  556.  in questo compito.  Buon lavoro.
  557. NOTA:  I seguenti tutorial presuppongono che voi conosciate gi
  558.  altre
  559. caratteristiche proprie di Doopsi, quali la creazione di nuove scene, la
  560. creazione di animazioni tramite AnimWorkshop e la gestione degli oggetti
  561. tramite l'editor di Attributi dell'Oggetto.
  562. Tutorial 1 - Un Semplice Percorso
  563. In questo tutorial impareremo a disegnare un piccolo percorso di quattro
  564. nodi e ad unire questi nodi tra loro con delle semplici diramazioni.  Scopo
  565. di questo tutorial 
  566.  di impratichirvi con i comandi di base del Path
  567. Editor.  Imparerete ad aggiungere e cancellare nodi, ad aggiungere
  568. collegamenti e a forzare il ridisegnamento di tutta la scena (necessario in
  569. alcuni casi).  Nel prossimo tutorial costruiremo qualcosa di pi
  570.  complesso.
  571. Eseguite questa esercitazione anche pi
  572.  volte, fino a quando non sarete
  573. certi di avere completa padronanza dei comandi.
  574. Per eseguire questo tutorial dovrete aver creato prima una scena con
  575. l'immagine "tutorial_room1".
  576. Premete Path Editor nel pannello principale di Doopsi.
  577. Non fatevi spaventare dal numero di pulsanti che ci sono, col tempo ne
  578. avrete piena padronanza.
  579. Prima di tutto, 
  580.  consigliabile sistemare tutti i nodi che si desiderano
  581. sullo schermo.  Naturalmente 
  582.  possibile aggiungerne anche in seguito, ma
  583. in questo modo sarete certi di coprire almeno tutti i punti importanti.
  584. Per aggiungere un nodo sulla scena 
  585.  sufficiente eseguire questi passaggi:
  586.    - Premete "Agg. Nodi"
  587.      Da questo momento in poi, fino a quando non decideremo di smettere, 
  588.      ogni click del mouse sulla scena dar
  589.  origine alla creazione dei nodi.
  590.    - Create quattro nodi in modo che formino una specie di quadrato.
  591.    - Premete "Agg. Coll." per aggiungere i collegamenti.
  592.      Da questo momento in poi, fino a quando non decideremo interrompere
  593.      l'operazione, potremo aggiungere collegamenti tra i nodi.
  594.    - Premete sul primo nodo (il nodo cambier
  595.  di colore)
  596.    - Premete sul secondo nodo (il nodo cambier
  597.  di colore e una linea unir
  598.      i due nodi)
  599.    Abbiamo appena creato il primo collegamento.  Per creare il secondo,
  600.    procediamo in questo ordine:
  601.    - Premete sul secondo nodo (il nodo cambier
  602.  colore)
  603.    - Premete sul terzo nodo (il nodo cambier
  604.  colore e una linea unir
  605.      due nodi)
  606.    Proseguite in questo modo fino a quando non avrete creato un vero
  607.    "quadrato".
  608. Adesso che avete creato questi nodi, potete testare lo spostamento che
  609. effettuer
  610.  il personaggio durante l'avventura:
  611.    - premete il bottone "Prova Movim." e selezionate il nodo di partenza
  612.      (per esempio il primo).  Il nodo si illuminer
  613.    - Selezionate il secondo nodo (ad esempio il terzo).  Il nodo si
  614.      illuminer
  615. Il programma cercher
  616.  di calcolare un percorso tra i due nodi selezionati e
  617. lo visualizzer
  618. , passo passo, illuminando i nodi.  Se avete selezionato il
  619. primo ed il terzo e li avete collegati come descritto nel nostro esempio,
  620. dovreste vedere illuminarsi i nodi uno, due e tre.  Naturalmente questo 
  621. un esempio semplice, ma la possibilit
  622.  di provare il path si rivela molto
  623. utile in scene complesse.
  624. Adesso create un nuovo nodo dove volete e collegategli altri nodi, seguendo
  625. i procedimenti appena descritti.  Riprovate ad utilizzare "Prova Movim.".
  626. Prima di terminare il tutorial, proviamo a rimuovere un nodo dalla scena:
  627.    - Premete "Uccidi Nodo"
  628.    - Selezionate il nodo che intendete cancellare.
  629.    - Il nodo verr
  630.  cancellato.
  631. A questo punto, 
  632.  possibile che della grafica sulla scena sia rovinata e
  633. che il nodo appena cancellato compaia ancora.  Questo non 
  634.  un errore di
  635. Doopsi, ma 
  636.  necessario eseguire un aggiornamento della grafica (refresh).
  637. Premete "Aggiorna" per aggiornare la grafica, vedrete che adesso il nodo
  638. cancellato non comaprir
  639. Tutorial 2 - La programmazione dei nodi
  640. I percorsi sono strumenti potentissimi.  Per utilizzarli al meglio 
  641. necessario provare e riprovare.  Quello che cercheremo di spiegarvi adesso
  642.  la "programmazione" di un nodo.
  643. Un nodo puo' essere programmato per le seguenti attivit
  644.    - Modificare l'animazione del personaggio
  645.    - Modificare la priorit
  646.  uomo/oggetti
  647.    - Determinare il cambio di scena
  648.    - Controllare se un nodo 
  649.  percorribile (controllo di condizione)
  650. Tutte queste operazioni sono complesse da realizzare e richiedono uno
  651. strudio accurato della generazione del percorso.
  652. Vediamo adesso come 
  653.  possibile programmare un nodo e quali sono le
  654. condizioni da tenere in considerazione nella progettazione di un percorso.
  655. Per programmare un nodo, 
  656.  sufficiente premere il bottone "Codice" nel Path
  657. Editor e poi selezionare il nodo che si intende modificare.
  658.    - Modificare l'animazione del personaggio
  659.      Premere il bottone "Setta Anim.", apparir
  660.  un Lister con tutti gli
  661.      oggetti (animati e non) presenti nell'avventura. Selezionate quello
  662.      che vi riguarda (Deve essere un AnimObject).
  663.    - Modificare la priorit
  664.  uomo/oggetti
  665.      Premete il bottone "Cambia Pri", verranno alternate le scritte "Uomo
  666.      Su Oggetti" o "Oggetti Su Uomo".
  667.    - Determinare il cambio di scena
  668.      Premere su "Set Start", apparir
  669.  un Lister contenente tutte le scene
  670.      create. Selezionate quella nella quale desiderate spostarvi quando il
  671.      personaggio passer
  672.  sopra al nodo.
  673.    - Controllare se un nodo 
  674.  percorribile (controllo di condizione)
  675.      Premete "Set Condizione", apparir
  676.  un Lister con tutti i nomi degli
  677.      oggetti presenti nell'avventura. Selezionato l'oggetto, comparir
  678.      uno status requester per determinare la condizione che andr
  679.      controllata su quel determinato nodo.
  680. Facciamo un piccolissimo esempio di utilizzo:
  681. Immaginate di avere i seguenti nodi:
  682.     1 ---- 2 ---- 3 ---- 4 ---- 5
  683. Noi vogliamo che il nodo 5 ci faccia saltare alla scena "Ufficio", ma solo
  684. quando l'oggetto "porta" 
  685.  aperta (supponiamo che lo status sia a 1 quando
  686. la pora 
  687.  aperta).  Dobbiamo fare in modo che il protagonista NON possa
  688. raggiungere il nodo n.5 se non quando la porta 
  689.  aperta.
  690. Iniziamo a programmare il nodo 5.  Premete "Codice" e poi sul nodo 5, e
  691. cliccate su "Set Start", selezionando la scena "Ufficio":  da ora in poi
  692. tutte le volte che il personaggio arriver
  693.  sul nodo n.5, passer
  694.  alla scena
  695. "Ufficio".
  696. Ora programmate il nodo n.4:  premete "Codice" poi selezionate il nodo e
  697. cliccate su "Set Condizione".  Premete sull'oggetto "Porta" e inserite come
  698. valore di status 1.  Fatto!  Adesso, se la porta 
  699.  chiusa, il nodo n.5 non
  700.  raggiungibile.
  701. Descrizione generale.
  702. Probabilmente questo 
  703.  l'editor con pi
  704.  bottoni, ma questi gadget sono
  705. raccolti in gruppi.  Esamineremo un gruppo alla volta.
  706. Il primo gruppo che mi accingo a descrivere 
  707.  quello situato nell'angolo in
  708. alto a sinistra della finestra.  Il bottone "Agg.  Nodi" attiva l'aggiunta
  709. dei nodi, cio
  710. , dopo aver premuto questo gadget potete aggiungere quanti
  711. nodi volete fino a quando siete soddisfatti:  dovete solo cliccare sulla
  712. scena nel punto dove volete un nodo.  Per uscire dall'aggiunta dei nodi
  713. dovete premere ancora il gadget "Agg.  Nodi" (o un altro gadget del
  714. medesimo gruppo).  Il bottone "Uccidi Nodo" vi chiede di selezionare il
  715. nodo da uccidere, dopo di che l'Editor lo rimuover
  716.  dalla scena:  il nodo
  717. "morto" lascer
  718.  un quadrato nero sulla scena, cos
  719. , se volete restaurare la
  720. vostra grafica, dovete premere il bottone "Aggiorna".  Il bottone
  721. "Aggiorna" ridisegna tutta la grafica contenuta nella scena corrente.  Il
  722. bottone "Agg.  Coll." serve per attivare l'aggiunta dei collegamenti:  per
  723. aggiungere un collegamento fra due nodi premete prima sul nodo iniziale e
  724. poi su quello finale.  Potete ripetere questi passaggi fino a quando non
  725. avrete finito di collegare tutti i vostri nodi; quindi premete il bottone
  726. "Agg.  Coll." ancora una volta per uscire dall'aggiunta dei collegamenti.
  727. Il gadget "Codice" vi chiede di selezionare il nodo da programmare; per
  728. terminare la sessione di programmazione premete ancora sul bottone
  729. "Codice":  l'Editor vi chieder
  730.  di selezionare un'altro nodo da
  731. programmare, ma potete cliccare nel campo del "Messaggio" per farlo
  732. smettere definitivamente.
  733. La programmazione dei nodi ci porta direttamente al gruppo intitolato
  734. "Modifica Settaggi".  Il bottone "Setta Anim." 
  735.  utilizzato per cambiare le
  736. animazioni dell'Omino quando l'Omino passa su quel nodo:  l'Editor apre un
  737. lister con tutti i nomi degli oggetti creati ed aspetta che l'utente
  738. selezioni un nome dalla lista.  A questo punto il testo "Default" alla
  739. sinistra del gadget viene rimpiazzato con il nome scelto.  Da questo nodo
  740. in poi il Player user
  741.  la radice del nome scelto come radice per costruire
  742. tutti i nomi delle animazioni dell'Omino (se questo non vi dice niente
  743. allora dovreste leggere le "Alcune note su come il Player trova l'Omino"
  744. situate appena dopo la sezione della Finestra Principale di questo
  745. manuale).  Il gadget "Cambia Pri." alterna la priorit
  746.  fra "Uomo Su
  747. Oggetti" a "Oggetti Su Uomo" e viceversa:  la prima condizione significa
  748. che l'Omino apparir
  749.  davanti a tutti gli oggetti mentre cammina verso quel
  750. nodo, la seconda significa giusto il contrario (potete trovare altre note a
  751. proposito di come questo funzioni nella sezione dedicata al Player del
  752. manuale).  Il bottone "Set Start" apre un lister con i nomi di tutte le
  753. scene create fino ad ora:  il nome della scena selezionata apparir
  754.  alla
  755. sinistra del gadget nel campo "Start".  Se questo campo non 
  756.  vuoto il
  757. Player, quando l'Omino calpesta quel nodo, cerca una scena avente il nome
  758. scelto; se la scena viene trovata allora il Player abbandona la scena
  759. precedente ed entra in quella nuova.  Nella nuova scena l'Omino verr
  760. posizionato sul nodo contenente (nel campo "Start") il nome della scena da
  761. cui l'Omino proviene.  (E' come se il nodo "finale" della prima scena punti
  762. verso il nodo "iniziale" della seconda, e viceversa.)
  763. Il prossimo gruppo 
  764.  quello chiamato "Condizioni".  Il bottone "Set
  765. Condizione" permette all'utente di arrestare l'Omino se una determinata
  766. condizione non 
  767.  verificata:  la condizione 
  768.  del tipo "Se lo stato
  769. dell'oggetto 
  770.  uguale a".  Il bottone apre un lister con i nomi degli
  771. oggetti; dopo aver selezionato un oggetto dovete inserire il valore dello
  772. stato che volete controllare.  Se il campo di Stato dell'oggetto
  773. selezionato non contiene il valore scelto quando l'Omino cammina su quel
  774. nodo, allora all'Omino non 
  775.  permesso oltrepassare tale nodo.  Il gadget
  776. "Cancella Condiz." cancella i campi di condizione del nodo.
  777. Il bottone "Prova Movim." vi permette di vedere come l'Omino camminer
  778. vostro percorso:  vi si chiede di selezionare il nodo di partenza ed il
  779. nodo di arrivo; a questo punto l'Editor illuminer
  780.  i nodi su cui l'Omino
  781. passer
  782.  mentre va dal nodo iniziale a quello finale.  Il bottone "Controlla
  783. Nodi" controlla se tutti i nodi sono correttamente collegati e rimuove i
  784. nodi isolati.
  785. Ci mancano solo tre gadget.  Il bottone "Nuovo Path" cancella completamente
  786. il path attuale.  Il gadget "Salva Path" salva il path corrente in un file,
  787. e il gadget "Carica Path" carica un file salvato con il precedente bottone.
  788. Alcuni suggerimenti utili:
  789. Premete sempre il bottone "Controlla Nodi" prima di salvare tutto il vostro
  790. lavoro, poich
  791.  in questo modo vi eviterete sgradite sorprese.
  792. Quando posizionate i nodi non dimenticatevi delle dimensioni dell'Omino:
  793. l'hot spot dell'Omino 
  794.  posizionato nell'angolo in basso a sinistra
  795. dell'immagine dell'Omino, quindi l'Omino si ferma sempre alla destra di un
  796. nodo.  Questo implica che l'Omino pu
  797.  raggiungere il bordo destro (o il
  798. bordo superiore) della scena prima di raggiungere il nodo di destinazione
  799. se posizionate tale nodo troppo vicino al bordo della scena:  quando
  800. l'Omino raggiunge il bordo della scena si ferma, cos
  801.  il vostro nodo non
  802.  mai raggiunto.
  803. Quando stabilite la priorit
  804.  dell'Omino sugli oggetti tenete presente le
  805. dimensioni dell'Omino:  se un nodo dice "Oggetti Su Uomo" ed il seguente
  806. dice "Uomo Su Oggetti" e l'Omino, andando dal primo al secondo nodo, 
  807. ancora parzialmente coperto da un oggetto, esso pu
  808.  venire improvvisamente
  809. posizionato davanti all'oggetto che lo copre.  Di conseguenza vi capiter
  810. spesso di dover scegliere la priorit
  811.  "Oggetti su Uomo" anche per un nodo
  812. che non 
  813.  coperto da alcun oggetto per essere sicuri che l'Omino sia
  814. completamente scoperto prima di cambiare la sua priorit
  815. I gadget.
  816. Agg. Nodi         Attiva l'aggiunta dei nodi: cliccate sulla scena per
  817.                   posizionare quanti nodi volete, e poi cliccate su questo
  818.                   gadget per uscire dall'aggiunta.
  819. Uccidi Nodo       Chiede di selezionare un nodo e poi lo cancella. Cliccate
  820.                   ancora su questo bottone per annullare l'operazione.
  821. Agg. Coll.        Attiva l'aggiunta dei collegamenti: cliccate sul nodo
  822.                   iniziale e su quello finale fino a quando non avrete
  823.                   posizionato tutti i colegamenti. Premete ancora questo
  824.                   gadget per uscire dall'aggiunta.
  825. Codice            Attiva la sessione di programmazione. Quando avete finito
  826.                   di cambiare gli attributi del nodo premete ancora questo
  827.                   bottone.
  828. Aggiorna          Ridisegna tutta la grafica della scena.
  829. Setta Anim.       Cambia il campo "Anim" del nodo.
  830. Cambia Pri        Cambia la priorit
  831.  dell'Omino rispetto agli oggetti.
  832. Set Start         Seleziona la scena in cui entrare quando l'Omino cammina
  833.                   su questo nodo.
  834. Set Condizione    Stabilisce la condizione che deve essere verificata
  835.                   affinch
  836.  l'Omino possa oltrepassare il nodo.
  837. Cancella Condiz.  Cancella il campi di condizione di un nodo.
  838. Nuovo Path        Cancella il path corrente.
  839. Salva Path        Salva il path corrente in un file.
  840. Carica Path       Carica un path da un file.
  841. ---------------------------------------------------------------------------
  842. ************
  843. Spot Editor.
  844. ************
  845. Questo vi permette di posizionare degli "Spot" sulla scena:  essi sono
  846. semplicemente delle piccole crocette con due coordinate ed un nome.  Voi
  847. usate questo nome per designare un particolare spot e Doopsi user
  848.  le sue
  849. coordinate.  Gli spot vengono usati assieme, ad esempio, all'istruzione
  850. MoveObject per indicare il posto dove l'oggetto dovr
  851.  recarsi.
  852. Eccovi un TUTORIAL:
  853. - Create una nuova scena (utilizzando il bottone "New" nella sezione
  854. dedicata alle scene della finestra principale dell'editor).
  855. - Attivate lo Spot editor.
  856. - Selezionate il gadget "Aggiungi Spot":  apparir
  857.  il messaggio "Aggiungi
  858. gli spot".
  859. - Cliccate sulla scena dove volete mettere uno spot:  potete ripetere
  860. questa operazione fino a quando avrete posizionato tutti i vostri spot.
  861. - Selezionate ancora il bottone "Aggiungi Spot" per disattivare il modo di
  862. aggiunta degli spot.
  863. - Cliccate sulla scena per selezionare uno spot:  apparir
  864.  il messaggio
  865. "Informazioni".
  866. - Potete modificare il nome dello spot corrente semplicemente scrivendolo
  867. nello string gadget "Nome Spot" e premendo Return.
  868. - Uscite dallo Spot editor.
  869. Descrizione generale.
  870. Per aggiungere alcuni spot dovete cliccare sul bottone "Aggiungi Spot":
  871. quindi cliccate sulla scena ovunque vogliate posizionare uno spot.  Poich
  872. uno spot senza un nome non ha senso lo Spot Editor attribuisce ai vostri
  873. spot un nome di default, nome che potete cambiare in ogni momento
  874. semplicemente riscrivendolo nel gadget stringa chiamato "Nome Spot" e
  875. premendo Return.  D'ora in poi potete aggiungere spot a vostro piacimento.
  876. Quando siete soddisfatti, potete interrompere l'aggiunta di spot premendo
  877. ancora il bottone sinistro del mouse sul gadget "Aggiungi Spot" o su quello
  878. chiamato "Elimina Spot" o, infine, su qualunque parte della finestra
  879. dell'editor.  Per eliminare uno spot premete una volta il gadget "Elimina
  880. Spot":  l'editor vi chieder
  881.  di scegliere lo spot da uccidere, e quindi non
  882. vi rimane che cliccare su tale spot.  Questo 
  883.  tutto.  A proposito, dopo
  884. aver ucciso uno spot (o dopo aver deciso di non ucciderlo cliccando ancora
  885. nella finestra dell'editor) 
  886.  necessario riselezionare il gadget "Elimina
  887. Spot" per ucciderne un'altro, e cos
  888.  via.
  889. L'azione di default (quando non state aggiungendo o eliminando spot) 
  890. chiamata "Informazioni":  siete liberi di cliccare su qualunque spot per
  891. illuminarlo e visualizzare il suo nome nello string gadget.  Come ho detto
  892. in precedenza, questo nome pu
  893.  essere modificato ogni volta che viene
  894. visualizzato.
  895. Manca ancora un gadget:  il bottone "Aggiorna".  Dopo aver posizionato (ed
  896. eliminato) molti spot la vostra scena potrebbe apparire un po' sottosopra:
  897. cliccate su questo gadget e Doopsi pulir
  898.  la stanza per voi.
  899. I gadget:
  900. Aggiungi Spot     Attiva (e disattiva) l'aggiunta degli spot.
  901. Elimina Spot      Cancella uno spot.
  902. Nome Spot         Modifica il nome dello spot.
  903. Aggiorna          Ridisegna la scena.
  904. ---------------------------------------------------------------------------
  905. *************************
  906. Screen Attributes editor.
  907. *************************
  908. Questo editor vi permette di cambiare il nome della scena corrente, di
  909. caricare uno sfondo diverso senza rimuovere oggetti, percorso e spot che
  910. avete gi
  911.  agganciato a quella scena, ed altre cose utili...
  912. L'ultima riga in basso dice qualcosa del genere:  "Usa Azione Apri di
  913. Oggetto pippo".  In altre parole il codice Doopsi contenuto nell'azione
  914. specificata dell'oggetto selezionato verr
  915.  eseguito tutte le volte che
  916. entrerete nella scena durante il gioco.  Per disattivare questa opzione
  917. dovete cancellare il nome dell'oggetto nello string gadget.  Un
  918. suggerimento utile:  se volete che il codice sia eseguito solo la prima
  919. volta in cui entrate nella scena (o in occasioni speciali) potete sfruttare
  920. il campo di stato dell'oggetto:  inserite in questo campo un valore
  921. particolare ed iniziate il codice Doopsi con l'istruzione "IfStatus".
  922. I gadget:
  923. Cambia Sfondo     Carica un nuovo sfondo per la scena. Se almeno un nodo
  924.                   del percorso esistente o uno spot cadono al di fuori
  925.                   della bitmap allora l'editor vi avviser
  926.  senza, per
  927.                   rimuovere l'oggetto incriminato.
  928. Nome Scena        Cambia il nome interno della scena.
  929. Nome Musica       Potete inserire il nome di un modulo che verr
  930.  suonato
  931.                   ogni volta che entrerete nella scena (durante il gioco,
  932.                   ovviamente) e verr
  933.  interrotto quando uscirete dalla
  934.                   scena stessa. Potete cliccare sul bottone per aprire un
  935.                   file requester e selezionare il modulo, oppure potete
  936.                   scriverne direttamente il nome nel gadget stringa.
  937. Usa Azione        Questo cycle gadget vi permette di scegliere l'azione da
  938.                   cui leggere il codice Doopsi che 
  939.  eseguito quando
  940.                   entrate nella scena durante il gioco.
  941. di Oggetto        Seleziona l'oggetto da cui leggere il codice Doopsi
  942.                   specificato dal gadget "Usa Azione". Questo bottone apre
  943.                   una lista con i nomi di tutti gli oggetti. Potete anche
  944.                   inserire il nome dell'oggetto a mano utilizzando il
  945.                   gadget stringa.
  946. ---------------------------------------------------------------------------
  947. ***************************************
  948. L'Editor degli Attributi di un Oggetto.
  949. ***************************************
  950. Questo editor vi permette di specificare le caratteristiche di un oggetto e
  951. di posizionarlo sulla scena.
  952. Un primo tutorial: "il foglietto".
  953. - Suppongo che abbiate gi
  954.  caricato una scena per potervi posizionare degli
  955. oggetti.  Ora create un nuovo oggetto premendo il bottone "Nuovo" nella
  956. sezione dedicata agli oggetti della finestra principale.
  957. - Attivate l'editor degli Attributi.
  958. - Nel gadget "Nome" scrivete "il foglietto".
  959. - Cliccate sul gadget "Nome Interno" e scrivete "foglietto".
  960. - Cliccate sul cycle gadget per selezionare "Grafica" come tipo di oggetto,
  961. in quanto il nostro oggetto dovr
  962.  essere disegnato sulla scena.
  963. - Premete il bottone "Agg." e, usando il file requester, scegliere
  964. l'immagine "paper" nella directory Tutorial.  Ora l'immagine 
  965.  agganciata
  966. all'oggetto.
  967. - Infine premete il bottone "Pos" per posizionare l'oggetto sulla scena.
  968. - Potete muovere l'oggetto nella sua posizione finale selezionandolo con il
  969. mouse e trascinandolo all'interno della scena.
  970. Un secondo tutorial: "una zona vuota".
  971. - Create un nuovo oggetto come nel precedente tutorial.
  972. - Scrivete il suo nome e (pi
  973.  importante) il suo nome interno.
  974. - Cliccate sul cycle gadget per selezionare "Vuota" come tipo di oggetto:
  975. il nostro oggetto sar
  976.  una cornice vuota (che non verr
  977.  disegnata sullo
  978. schermo durante il gioco).
  979. - Premete il bottone "Setta Zona": un rettangolo apparir
  980.  sulla scena.
  981. - Trascinate il rettangolo nella scena con il mouse e scalatelo utilizzando
  982. il gadget posizionato nell'angolo in basso a destra del rettangolo stesso.
  983. - Quando avete finito premete il gadget "Pos" per agganciare questo oggetto
  984. alla scena.
  985. Descrizione generale.
  986. Potete attivare questo editor cliccando sul bottone "Attrib" nella sezione
  987. dedicata agli oggetti della finestra principale o cliccando il tasto destro
  988. del mouse su un oggetto gi
  989.  posizionato sullo schermo.
  990. I primi campi che dovete riempire sono quelli indicati con "Nome" e "Nome
  991. Interno":  il nome di un oggetto 
  992.  la stringa che appare sulla linea di
  993. testo della console del Player quando il puntatore 
  994.  su tale oggetto; il
  995. nome interno 
  996.  l'identificatore che Doopsi usa per indirizzare un oggetto:
  997. per questa ragione siete invitati a non usare pi
  998.  volte lo stesso nome.
  999. Dopodich
  1000.  concentriamoci sulla zona delle immagini.  Per aggiungere alcune
  1001. immagini al vostro oggetto dovete cliccare sul bottone "Agg.":  l'editor
  1002. aprir
  1003.  un file requester e, dopo che avrete selezionato un file valido,
  1004. visualizzer
  1005.  il nome dell'immagine (completa di percorso) nella lista.  Per
  1006. eliminare un'immagine non dovete far altro che cliccare su tale immagine e
  1007. poi premere il bottone "Uccidi".  Poi dovete dire all'editor quale immagine
  1008. usare per disegnare l'oggetto sulla scena; per far ci
  1009.  selezionate una
  1010. immagine nella lista a premete il gadget "Shp Def.":  apparir
  1011.  un numero
  1012. che mostra qual 
  1013.  l'immagine corrente.  Una procedura simile 
  1014.  necessaria
  1015. per dire al Player qual 
  1016.  l'immagine di inventario:  cliccate su
  1017. un'immagine e poi sul bottone "Shp Inv.".  A proposito:  le immagini di
  1018. inventario devono avere dimensioni di 32*32 pixel, altrimenti verranno
  1019. tagliate prima di essere visualizzate dal Player.  Vi 
  1020.  ancora un gadget da
  1021. descrivere:  il cycle gadget 
  1022.  necessario per scegliere se si vuole un
  1023. oggetto "Grafico" od uno "Vuoto".  Il primo ha un'immagine corrente che
  1024. viene disegnata sulla scena, mentre il secondo 
  1025.  solo un rettangolo vuoto
  1026. utilizzato per incorniciare qualcosa appartenente allo sfondo.  Per
  1027. posizionare e ridimensionare tale rettangolo dovete cliccare sul bottone
  1028. "Setta Zona":  una Zona Vuota verr
  1029.  disegnata sulla scena, zona che potete
  1030. trascinare col mouse cliccando su di essa; per riscalarla premete
  1031. semplicemente sul quadrato pieno nell'angolo in basso a destra della zona
  1032. stessa.  E' importante notare che anche oggetti Vuoti possono avere alcune
  1033. immagini agganciate:  potete usare queste immagini con i comandi del Player
  1034. che riguardano l'inventario.  Ciascun oggetto ha spazio per pi
  1035.  di una
  1036. immagine e pi
  1037.  di una immagine di inventario poich
  1038.  durante il gioco potete
  1039. cambiare l'immagine corrente dell'oggetto o la sua immagine di inventario
  1040. utilizzando le istruzioni del Player relative alle immagini.
  1041. Nel gadget "Stato" potete inserire il valore di partenza dello stato
  1042. dell'oggetto.  Il campo di stato 
  1043.  un valore intero privo di un significato
  1044. particolare, dimodoch
  1045.  lo potete usare per qualunque scopo vi aggradi, ad
  1046. es.:  potete memorizzare qui lo stato Aperto/Chiuso di una porta scrivendo
  1047. 0 per Chiuso e 1 per Aperto, e potete cambiare questo stato durante il
  1048. gioco usando ChangeStatus ed altre istruzioni del Player.
  1049. Uscendo da questo editor ricordate di premere sempre il bottone "Pos" se
  1050. volete agganciare l'oggetto alla scena, anche se l'avete gi
  1051.  fatto in
  1052. precedenza:  questo perch
  1053.  il gadget "Ok" accetta le modifiche apportate
  1054. all'oggetto ma sgancia sempre tale oggetto dalla scena.  Non c'
  1055.  bisogno di
  1056. spiegare cosa fa il gadget "Cancella".
  1057. I gadget:
  1058. Nome           Nome dell'oggetto.
  1059. Nome Interno   Nome interno dell'oggetto.
  1060. Shp Def.       Questo intero punta all'immagine utilizzata per disegnare
  1061.                l'oggetto sulla scena. Non ha significato alcuno per una
  1062.                Zona Vuota.
  1063. Shp Inv.       Questo intero punta all'immagine utilizzata dal Player per
  1064.                immagazzinare l'oggetto nell'inventario (le dimensioni di
  1065.                questa immagine devono essere di 32*32 pixel).
  1066. Vuota/Grafica  Seleziona il tipo di oggetto.
  1067. Agg.           Aggancia un'immagine all'oggetto e aggiunge il suo nome alla
  1068.                lista.
  1069. Uccidi         Rimuove un'immagine dalla lista.
  1070. Stato          Modifica il valore corrente dello stato.
  1071. Setta Zona     Crea il rettangolo di una Zona Vuota.
  1072. Pos            Esce agganciando l'oggetto alla scena.
  1073. Ok             Esce senza agganciare l'oggetto alla scena (se l'oggetto 
  1074.                gi
  1075.  agganciato, allora questo gadget lo sgancia).
  1076. Cancella       Esce ripristinando le condizioni iniziali.
  1077. ---------------------------------------------------------------------------
  1078. *************
  1079. Doopsi Coder.
  1080. *************
  1081. Introduzione.
  1082. Doopsi Coder 
  1083.  l'editor che vi permette di "programmare" gli oggetti a
  1084. reagire alle azioni dell'utente.  Per il player di DOOPSI, gli oggetti non
  1085. sono altro che complesse strutture di dati senza per
  1086.  alcun vero
  1087. significato.  Compito del Coder 
  1088.  di permettere un coordinamento tra le
  1089. azioni possibili dal giocatore e il comportamento di ogni oggetto.  Il
  1090. Coder 
  1091.  forse la parte pi
  1092.  importante nell'editing di una avventura, in
  1093. quanto permette effettivamente al creatore della storia di dare una forma
  1094. "reale" agli oggetti in scena e di permettere al giocatore di interagire
  1095. con gli oggetti stessi.
  1096. La teoria che 
  1097.  alla base del Doopsi Coder 
  1098.  molto semplice:  ad ogni
  1099. azione permessa all'utente potrebbe corrispondere una reazione da parte
  1100. dell'oggetto interessato.  Abbiamo detto "potrebbe" perch
  1101.  non 
  1102.  necessario
  1103. che ogni oggetto sia in grado di rispondere a tutte le azioni che l'utente
  1104. desidererebbe effettuare.  Se ad esempio il giocatore volesse parlare con
  1105. la porta, quest'ultima non 
  1106.  tenuta a rispondere (a meno che non si tratti
  1107. di una porta magica...)
  1108. La programmazione degli oggetti in Doopsi avviene all'interno del Coder,
  1109. che garantisce un ambiente semplice e rapido per la loro organizzazione.
  1110. Non preoccupatevi se non avete dimestichezza con la programmazione:  non
  1111. dovrete scrivere neppure una linea di codice, in quanto il Coder rende
  1112. questo compito accessibile a chiunque:  tutto quello che dovrete fare 
  1113. avere bene in mente quello che desiderate ottenere da una determinata
  1114. azione su di uno specifico oggetto.
  1115. Nozioni generali di OOP in Doopsi.
  1116. Doopsi significa "Dynamic Object Oriented Programming System Interface",
  1117. Interfaccia di Sistema per la Programmazione Dinamica Orientata agli
  1118. Oggetti.  I programmatori smaliziati noteranno che in Doopsi non 
  1119. presente un vero e proprio interprete OOP, bens
  1120.  Doopsi stesso che si
  1121. occupa di gestire l'interfacciamento oggetto-codice.  Per questo la
  1122. programmazione OOP in Doopsi 
  1123.  Dinamica:  gli oggetti possono mutare forma
  1124. e caratteristiche "al volo".  Gli oggetti sono visti come delle "entit
  1125. un insieme di dati e caratteristiche che li rendono unici e riconoscibili.
  1126. Tutti i dati contenuti all'interno di un oggetto sono protetti e non
  1127. direttamente accessibili.  L'accesso 
  1128.  garantito solo tramite le istruzioni
  1129. del Doopsi Language che si occupa di "smistare" i comandi e di accedere
  1130. correttamente ai dati desiderati.  Molti comandi chiedono come primo
  1131. parametro il nome interno dell'oggetto sul quale dovranno agire.  Questo
  1132. significa che il codice di un oggetto pu
  1133.  modificare le caratteristiche di
  1134. un altro oggetto del gioco.  Ogni oggetto possiede uno "Status", un valore
  1135. che pu
  1136.  essere modificato con del codice Doopsi e che rappresenta quello
  1137. che il programmatore desidera:  il valore di Status 
  1138.  arbitrario e non 
  1139. legato all'oggetto, dipende al programmatore definire come utilizzare
  1140. Status.
  1141. I comandi del Doopsi-Language sono elencati completamente nell'Appendice A.
  1142. NOTA:  i seguenti tutorial presuppongono che voi abbiate padronanza di
  1143. altre parti di Doopsi, come l'Editor degli Attributi dell'Oggetto.  Vedere
  1144. i Tutorial del capitolo "Creazione di Oggetti" se non si hanno ben chiari i
  1145. principi della creazione degli oggetti.
  1146. Tutorial 1 - Una porta che si apre e si chiude
  1147. Questo esempio presuppone che abbiate gi
  1148.  creato un oggetto chiamato
  1149. internamente "door" che possiede due immagini, la prima raffigurante la
  1150. porta chiusa ("door_closed") e la seconda raffigurante la porta aperta
  1151. ("door_open").
  1152. - Dall'editor principale, selezionate l'oggetto "door" come corrente e
  1153. premete il bottone Doopsi Coder, sarete cos
  1154.  pronti a programmare
  1155. l'oggetto.
  1156. - Premete il bottone "Apri" per programmare la reazione dell'oggetto
  1157. "door" all'azione "Apri".  Eseguite questi passi:
  1158.     - Comando "IfStatus"
  1159.     - Selezionate l'oggetto "door"
  1160.     - Inserite 0 come valore
  1161.     (Nella finestra del Coder comparir
  1162.  il comando: IfStatus SELF, 00)
  1163.     - Comando "ChangeStatus"
  1164.     - Selezionate l'oggetto "door"
  1165.     - Inserite 1 come valore
  1166.     (Nella finestra del Coder comparir
  1167.  il comando: ChangeStatus SELF, 01)
  1168.     - Comando "ChangeShape"
  1169.     - Selezionate l'oggetto "door"
  1170.     - Selezionate l'immagine raffigurante la porta aperta (ad es. "door_open")
  1171.     (Nella finestra del Coder comparir
  1172.  il comando: ChangeShape SELF, 01)
  1173.     - Comando "Else"
  1174.     - Comando "ShowText"
  1175.     - Inserite "La porta 
  1176.  aperta"
  1177.     (Nella finestra del Coder comparir
  1178.  il comando:  ShowText La port
  1179.    aperta)
  1180.    - Comando "EndIf"
  1181. Al termine della sequenza appenna effettuata, nella finestra del Coder
  1182. comparir
  1183.  questo codice:
  1184.     IfStatus SELF, 00
  1185.     ChangeStatus SELF, 01
  1186.     ChangeShape SELF, 01
  1187.     Else
  1188.     ShowText La porta 
  1189.  aperta
  1190.     EndIf
  1191. Questo codice significa (spiegato riga per riga): 
  1192.     Se lo status dell'oggetto stesso (SELF, la porta) 
  1193.     Cambia lo status dell'oggetto stesso (SELF, la porta) a 1
  1194.     Cambia l'immagine dell'oggetto stesso (sempre la porta) a 1 ("door_open")
  1195.     Altrimenti (Else)
  1196.     Mostra il Messaggio "La porta 
  1197.  aperta"
  1198.     Fine del controllo.
  1199. Scriviamo adesso il codice necessario per l'azione "Chiudi".  Premete il
  1200. bottone "Chiudi" per programmare la risposta dell'oggetto porta all'azione
  1201. di chiusura.  Eseguite questi passi:
  1202.     - Comando "IfStatus"
  1203.     - Selezionate l'oggetto "door"
  1204.     - Inserite il valore 1
  1205.     - Comando "ChangeStatus"
  1206.     - Selezionate l'oggetto "door"
  1207.     - Inserite il valore 0 
  1208.     - Comando "ChangeShape"
  1209.     - Selezionate l'oggetto "door"
  1210.     - Selezionate l'immagine "door_closed"
  1211.     - Comando "Else"
  1212.     - Comando "ShowText"
  1213.     - Inserite "La porta 
  1214.  chiusa"
  1215.     - Comando "EndIf"
  1216. Comparir
  1217.  il seguente codice:
  1218.     IfStatus SELF, 01
  1219.     ChangeStatus SELF, 00
  1220.     ChangeShape SELF, 00
  1221.     Else
  1222.     ShowText La porta 
  1223.  chiusa
  1224.     EndIf
  1225. Che "tradotto" significa:
  1226.     Se lo Status dell'oggetto stesso (SELF, porta) 
  1227.     Cambia lo Status dell'oggetto stesso (SELF, la porta) a 0
  1228.     Cambia l'immagine dell'oggetto stesso (SELF, sempre la porta) a 0 (la
  1229.       porta chiusa)
  1230.     Altrimenti
  1231.     Mostra Il Testo "La porta 
  1232.  chiusa"
  1233. La programmazione del nostro oggetto "door" 
  1234.  terminata.  Premete il
  1235. bottone OK per tornare al Doopsi Editor.
  1236. Tutorial 2
  1237. In questo tutorial mostreremo come modificare le caratteristiche di un
  1238. oggetto da un altro oggetto.  Questo tutorial presuppone che voi abbiate
  1239.  creato due oggetti, uno chiamato "lamp" con due immagini, una di
  1240. lampadina spenta ("light_off") ed una accesa ("light_on"); e l'altro
  1241. chiamato "button", con una sola immagine, di bottone.
  1242. - Selezionate l'oggetto "button" ed entrate nel Doopsi Coder.
  1243. - Premete sul bottone "Spingi", per editare il codice riferito alla
  1244. pressione da parte del giocatore del bottone "button".
  1245. - Eseguite queste operazioni:
  1246.     - Comando "IfStatus"
  1247.     - Selezionate "lamp"
  1248.     - Inserite 0
  1249.     - Comando "ChangeStatus"
  1250.     - Selezionate "lamp"
  1251.     - Inserite 1
  1252.     - Comando "ChangeShape"
  1253.     - Selezionate "lamp"
  1254.     - Selezionate "light_on"
  1255.     - Comando "Else"
  1256.     - Comando "ChangeStatus"
  1257.     - Selezionate "lamp"
  1258.     - Inserite 0
  1259.     - Comando "ChangeShape"
  1260.     - Selezionate "lamp"
  1261.     - Selezionate "light_off"
  1262.     - Comando "EndIf"
  1263. Nella finestra di codice di Doopsi Coder, comparir
  1264.  il seguente programma:
  1265.     IfStatus lamp, 00
  1266.     ChangeStatus lamp,01
  1267.     ChangeShape lamp,01
  1268.     Else
  1269.     ChangeStatus lamp,00
  1270.     ChangeShape lamp,00
  1271.     EndIf
  1272. Che "tradotto" significa:
  1273.     Se lo Status della lampada ("lamp") 
  1274.  0 (la lampada 
  1275.  spenta)
  1276.     Cambia lo Status di lamp in 1 (lampada accesa)
  1277.     Cambia l'immagine di lamp a "light_on"
  1278.     Altrimenti (la lampada 
  1279.  accesa)
  1280.     Cambia lo Status di lamp a 0 (lampada spenta)
  1281.     Cambia l'immagine di lamp a "light_off"
  1282. Come vedete dal codice, non abbiamo dovuto programmare l'oggetto "lamp",
  1283. eppure l'oggetto modifica il suo stato (anche grafico) man mano che il
  1284. giocatore preme il pulsante "button".  Naturalmente, questo tutorial 
  1285. molto semplice, ma 
  1286.  possibile creare dipendenze molto complesse tra
  1287. oggetti differenti, rendendo il gioco finale ricco e articolato.
  1288. Descrizione generale.
  1289. Prima di tutto dovete selezionare l'azione che vi apprestate a programmare:
  1290. per far ci
  1291.  premete uno dei nove bottoni "Azioni Possibili" che compaiono
  1292. nell'angolo in alto a sinistra della finestra; il nome dell'azione scelta
  1293. comparir
  1294.  nel campo "Azione Corrente" sul fondo della finestra.
  1295. Per inserire una qualsiasi istruzione eseguite le seguenti azioni:
  1296. cliccate sul nome dell'istruzione desiderata contenuta nel lister che si
  1297. trova alla destra delle "Azioni Possibili"; l'Editor vi chieder
  1298. riempire qualsiasi argomento l'istruzione potrebbe avere.  Dopo aver
  1299. soddisfatto tutte le richieste potrete vedere apparire la linea di codice
  1300. nell'area del programma (il grosso rettangolo con un linea evidenziata in
  1301. esso).  La barra nell'area del programma 
  1302.  una specie di cursore che
  1303. evidenzia la linea corrente.  L'istruzione che state editando verr
  1304. inserita prima di quella evidenziata.  Potete muovere il cursore cliccando
  1305. direttamente sull linea scelta oppure usando i gadget U (Up), D (Dowm), T
  1306. (Top) e B (Bottom).  Per eliminare una linea premete semplicemente il
  1307. bottone "Uccidi".
  1308. I gadget:
  1309. Nella zona in alto a sinistra vi sono i nove gadget per selezionare una
  1310. delle nove azioni da programmare.  Alla destra di questa zona vi 
  1311. lister con tutte le istruzioni del linguaggio Doopsi.  Gli altri gadget
  1312. sono:
  1313. T              Sposta all'inizio del codice.
  1314. B              Sposta alla fine del codice.
  1315. U              Sposta in su di una linea. (Per muovervi su una linea potete
  1316.                cliccare direttamente su quella linea.)
  1317. D              Sposta in gi
  1318.  di una linea.  (Per muovervi su una linea
  1319.                potete cliccare direttamente su quella linea.)
  1320. Uccidi         Rimuove la linea di codice attualmente evidenziata.
  1321. ---------------------------------------------------------------------------
  1322. ****************
  1323. L' AnimWorkshop.
  1324. ****************
  1325. Questo editor vi permette di creare animazioni mettendo in sequenza alcune
  1326. immagini.  Il risultato 
  1327.  che potete mutare un semplice Oggetto in qualcosa
  1328. di pi
  1329.  complesso chiamato AnimObject, ovvero un oggetto contenente
  1330. un'animazione.  Tale animazione verr
  1331.  visualizzata quando l'AnimObject 
  1332. disegnato sulla scena.
  1333. Iniziamo con un veloce TUTORIAL:  "assemblare un pendolo"
  1334. - Create un nuovo oggetto con "Pendolo" come nome interno.
  1335. - Attivate AnimWorkshop.
  1336. - Premete il gadget "Carica Frames" e, utilizzando il file requester,
  1337. selezionate l'immagine denominata "pendulum.000".  AnimWorkshop caricher
  1338. le tre immagini chiamate "pendulum.000", "pendulum.001" e "pendulum.002".
  1339. - Selezionate il fotogramma numero 0 e cliccate sul gadget "Agg Frame";
  1340. selezionate il fotogramma numero 1 e cliccate sul gadget "Agg Frame";
  1341. ripetete il tutto anche per il terzo ed ultimo fotogramma.
  1342. - Premete il gadget "Ping-Pong" per creare un'animazione di tipo Ping-Pong
  1343. (nel nostro caso verr
  1344.  aggiunto un solo fotogramma).
  1345. - Scrivete 3 nel gadget del "Frame Rate".
  1346. - Premete "Anima" per vedere l'animazione e il tasto destro del mouse per
  1347. fermarla.
  1348. - Premete il gadget "Ok" per uscire da AnimWorkshop.
  1349. Ed eccovi un tutorial pi
  1350.  difficile su "come costruire l'Omino":
  1351. - Per prima cosa create un nuovo oggetto utilizzando l'editor degli
  1352. Attributi (suppongo che sappiate gi
  1353.  fare questo) e chiamatelo (nome
  1354. interno) "OminoDestra".  Ora siete pronti per attivare AnimWorkshop.
  1355. - Premete il bottone "Carica Frames" e, utilizzando il file requester,
  1356. selezionate l'immagine chiamata "man_walk_right.000":  AnimWorkshop
  1357. caricher
  1358.  questa immagine e tutte le seguenti col medesimo nome e numero
  1359. crescente; questi fotogrammi saranno disegnati su un nuovo schermo.  Potete
  1360. scorrere le immagini utilizzando i gadget "Prec" e "Succ" nella parte alta
  1361. della finestra.
  1362. - Posizionatevi sul fotogramma numero 1 (il fotogramma 0 
  1363.  quello "a
  1364. riposo" e lo prender
  1365.  in considerazione pi
  1366.  tardi) e premete il bottone
  1367. "Agg Frame":  il numero 1 apparir
  1368.  nella finestra della Sequenza.  Ora
  1369. muovetevi sul fotogramma numero 2 e premete ancora su Agg Frame; ripetete
  1370. queste azioni fino a quando anche l'ultimo fotogramma far
  1371.  parte della
  1372. sequenza.
  1373. - Ora potete inserire il frame rate nel gagdet "Frame Rate":  scrivete 12 e
  1374. premete Return.
  1375. - La vostra animazione 
  1376.  completa:  premete il gagdet "Anima" per
  1377. ammirarla.
  1378. - Fermate l'animazione premendo il tasto destro del mouse.  Ora potete
  1379. uscire da AnimWorkshop premendo il bottone "Va Bene" o "Cancella" a seconda
  1380. se siete soddisfatti della vostra animazione o meno.
  1381. - E il frame numero 0?  Non si pu
  1382.  includerlo nell'animazione perch
  1383. fotogramma "a riposo", ma il Player ha bisogno di sapere quale frame usare
  1384. quando l'Omino 
  1385.  fermo:  quindi noi lo agganciamo al nostro oggetto Omino e
  1386. puntiamo ad esso mediante il campo "Immagine Corrente" nell'editor degli
  1387. Attributi.  (Ovviamente questo campo non ha significato alcuno per una
  1388. animazione qualunque.)
  1389. - Un'ultima nota:  se ora attivate l'editor degli Attributi vedrete tutte
  1390. le immagini agganciate al nostro AnimObject mediante AnimWorkshop.  Questo
  1391. significa che potete agganciare i fotogrammi anche utilizzando l'editor
  1392. degli Attributi se preferite.
  1393. Descrizione generale.
  1394. A questo punto suppongo che sappiate gi
  1395.  come creare un nuovo oggetto.  Se
  1396. volete convertire tale oggetto in un AnimObject allora attivate
  1397. l'AnimWorkshop.  Se l'utente ha gi
  1398.  agganciato alcune immagini a questo
  1399. oggetto utilizzando l'editor degli Attributi allora tali immagini saranno
  1400. caricate e visualizzate immediatamente; se una o pi
  1401.  immagini non vengono
  1402. trovate l'editor segnaler
  1403.  un errore e le immagini mancanti rimarranno
  1404. vuote.  In alternativa 
  1405.  possibile caricare le immagini mediante
  1406. AnimWorkshop stesso:  ma si tenga presente che in questo caso le immagini
  1407. devono costituire una sequenza sul disco, vale a dire che devono avere
  1408. tutte il medesimo nome seguito da un punto e da un numero a tre (tre, non
  1409. quattro o due!) cifre, ad es.  "pippo.000".  Quindi, quando l'utente
  1410. seleziona il gadget Carica Frames, AnimWorkshop aprir
  1411.  un file requester:
  1412. l'utente deve selezionare la prima immagine della sequenza (che non deve
  1413. necessariamente essere quella numerata "pippo.000"; potete iniziare
  1414. dall'immagine "pippo.154" se vi piace), ed allora l'editor proseguir
  1415. caricando tutte le immagini che trova con il medesimo nome e con numero
  1416. crescente (ad es.:  "pippo.154", "pippo.155", e cos
  1417.  via) fino a quando
  1418. raggiunge l'ultima o non ha pi
  1419.  spazio per agganciare ulteriori immagini
  1420. all'oggetto corrente (il numero di immagini che un oggetto pu
  1421.  possedere 
  1422. ovviamente limitato).
  1423. Dopo che avete caricato le immagini siete pronti per costruire la sequenza
  1424. dei fotogrammi.  Prima di tutto, vi sono due gadget nella parte alta della
  1425. finestra, chiamati "Prec" e "Succ", per scorrere i fotogrammi, e fra di
  1426. essi 
  1427.  scritto il numero sequenziale del fotogramma visualizzato:  potete
  1428. inserirlo manualmente.  Dunque dovete agire come segue:  selezionate il
  1429. fotogramma da includere nella sequenza e premete il bottone Aggiugi Frame.
  1430. Semplice, no?  Il fotogramma verr
  1431.  inserito subito dopo la posizione
  1432. corrente, e voi saprete sempre qual 
  1433.  la posizione corrente in quanto 
  1434. evidenziata:  potete inoltre muovere questa specie di cursore utilizzando i
  1435. gadget "Prec" e "Succ" alla base della finestra o utilizzando i tasti
  1436. cursore.  A proposito, se occorre inserire un fotogramma prima del primo
  1437. (scusate il gioco di parole, ma rende l'idea) dovete muovere il cursore sul
  1438. primo fotogramma della sequenza e poi muoverlo ancora una volta verso
  1439. sinistra:  il cursore sparir
  1440.  fuori dalla finestra della Sequenza e siete
  1441. pronti per cliccare sul gadget "Aggiungi Frame".  Posso dirvi di pi
  1442. :  se
  1443. cliccate due volte sul numero di un fotogramma nella finestra della
  1444. Sequenza tale fotogramma sar
  1445.  visualizzato.  Rimuovere un fotogramma 
  1446. ancora pi
  1447.  semplice:  posizionatevi sul fotogramma incriminato nella
  1448. Sequenza e cliccate sul bottone "Rimuovi Frame".
  1449. Veniamo ora alla descrizione dei gadget rimanenti.  Un modo comodo per
  1450. creare un'animazione a ping-pong 
  1451.  quello di costruire la parte "ping" come
  1452. descritto precedentemente e poi selezionare il gadget "Crea Ping-Pong":
  1453. AnimWorkshop aggiunger
  1454.  alla vostra sequenza la parte "ping" ribaltata
  1455. (senza il primo e l'ultimo fotogramma) per creare la parte "pong".
  1456. Inoltre, se non siete soddisfatti della vostra sequenza potete sempre
  1457. eliminarla con una sola pressione del bottone "Cancella Sequenza".  Potete
  1458. comunicare ad AnimWorkshop la velocit
  1459.  della vostra animazione modificando
  1460. il valore del gadget "Frame Rate".  Ultimo ma non meno importante 
  1461. gadget "Anima".  So che sapete a cosa serve questo, ma lasciatemi
  1462. aggiungere un'altra cosa:  Doopsi visualizza tutte le animazioni in loop,
  1463. ovvero la sequenza viene letta da sinistra a destra fino alla fine, e poi
  1464. ancora dall'inizio fino a quando non viene fermato.
  1465. I gadget:
  1466. Carica Frames     Carica una sequenza di fotogrammi. Una sequenza 
  1467.                   composta da files con lo stesso nome ma con numero
  1468.                   sequenziale crescente (ad es.: pippo.000, pippo.001,
  1469.                   ...). Voi selezionate il primo nome della lista.
  1470. Prec              Muove al fotogramma precedente nella lista.
  1471. Succ              Muove al fotogramma successivo nella lista.
  1472. Agg Frame         Aggiunge alla sequenza il fotogramma attualmente
  1473.                   visualizzato.
  1474. Canc Frame        Cancella il fotogramma selezionato dalla sequenza. Voi
  1475.                   selezionate il fotogramma muovendo il cursore sopra di
  1476.                   esso.
  1477. Crea Ping-Pong    Crea un'animazione a ping-pong modificando la vostra
  1478.                   sequenza di fotogrammi.
  1479. Frame Rate        Cambia il frame rate dell'animazione.
  1480. Cancella Sequenza Elimina la sequenza di fotogrammi.
  1481. Anima             Mostra l'animazione.
  1482. Prec              Va al fotogramma precedente nella sequenza (potete usare
  1483.                   anche i tasti cursore).
  1484. Succ              Va al fotogramma successivo nella sequenza.
  1485. ---------------------------------------------------------------------------
  1486. **********************
  1487. L'Editor dei Dialoghi.
  1488. **********************
  1489. Introduzione.
  1490. In ogni avventura che si rispetti, devono essere presenti dei dialoghi tra
  1491.  personaggi.  Migliori sono i dialoghi, pi
  1492.  brillanti sono le
  1493. conversazioni, pi
  1494.  divertente risulta l'avventura.  Creare i dialoghi non 
  1495. un compito facile da eseguire:  bisogna tenere in considerazione moltissimi
  1496. elementi e prevedere una risposta differente ad ogni frase che 
  1497.  possibile
  1498. dire.  E' per questo motivo, che vi consigliamo vivamente di pianificare
  1499. attentamente i vostri dialoghi e di tracciare su carta dei veri e propri
  1500. diagrammi nei quali descrivere in maniera molto "visiva" come dovrebbe
  1501. essere strutturato un dialogo.
  1502. In Doopsi i dialoghi possono essere strutturati in maniera molto potente e
  1503. versatile ed 
  1504.  possibile scrivere dialoghi che richiamano altri dialoghi o
  1505. che saltano da una parte all'altra per poi tornare sui loro stessi passi.
  1506. Il Dialog Editor 
  1507.  uno strumento semplice e funzionale che vi permetter
  1508. creare dialoghi complessissimi in un brevissimo spazio di tempo:
  1509. attenzione per
  1510. , perch
  1511. , come vi abbiamo gi
  1512.  detto, se non pianificherete
  1513. prima tutto il dialogo, rischiate veramente di perdere, per cos
  1514.  dire, il
  1515. filo del discorso.
  1516.  un dialogo:
  1517. Un Dialogo, in DOOPSI, 
  1518.  formato da una sequenza pi
  1519.  o meno lunga di
  1520. pagine.  Come per tutti gli altri elementi di Doopsi anche le pagine di
  1521. dialogo hanno il loro proprio "nome interno" che le identifica
  1522. univocamente.
  1523. Per il resto, una pagina 
  1524.  formata da una "risposta", che 
  1525.  la frase che
  1526.  l'interlocutore all'Omino, e una o pi
  1527.  frasi selezionabili
  1528. dall'utente, come risposta alla "risposta"...  hmmm, detto cos
  1529. sembrare un p
  1530.  confuso, cerchiamo di spiegare meglio, con un esempio:
  1531. iniziamo subito con il tutorial.
  1532. Tutorial 1 - Un Breve Dialogo
  1533. Per entrare nel Dialog Editor, premete semplicemente il bottone
  1534. "Dialog Editor" presente nella Finestra Principale.
  1535.    - Premete il bottone "Nuova" per creare una nuova pagina di dialogo.
  1536.      Vi verr
  1537.  mostrato un requester per l'inserimento del nome della
  1538.      pagina. Dal momento che questa pagina verr
  1539.  utilizzata come
  1540.      punto di partenza, sar
  1541.  meglio darle un nome significativo,
  1542.      scrivete quindi "Partenza_Dialogo".
  1543.      Adesso siete in grado di iniziare a scrivere le frasi vere e proprie.
  1544.    - Premete il bottone "Agg." in basso a sinistra, per aggiungere una
  1545.      nuova frase. La stringa "Nuova Frase" comparir
  1546.  nel gadget chiamato,
  1547.      per l'appunto, "Frase:". Cancellate "Nuova Frase" ed inserite invece
  1548.      questo: "Ciao, come stai?"
  1549.    - Ripetete adesso il punto 2, inserendo per
  1550.  i messaggi:
  1551.      "Come va!" e "Adesso devo proprio andare".
  1552.    - Adesso dovremo creare una seconda pagina, premiamo "Nuova" e mettiamo
  1553.      come nome "Come_Stai", cos
  1554.  ci ricorderemo che quello che
  1555.      immetteremo in questa pagina sar
  1556.  in risposta a "Ciao, come stai?"
  1557.      della pagina precedente.
  1558.    - Nel gadget in alto, dove c'
  1559.  scritto "Risposta:", scrivete "Bene!",
  1560.      questa 
  1561.  la risposta che il nostro interlocutore ci dar
  1562.      Scrivere qualcosa in questo campo, non 
  1563.  strettamente necessario,
  1564.      ma 
  1565.  sempre meglio fare in modo che il nostro interlocutore dica
  1566.      qualcosa... altrimenti il nostro dialogo si potrebbe trasformare
  1567.      in un "monologo".
  1568.      L'unica situazione nella quale si pu
  1569.  effettivamente omettere una
  1570.      stringa di risposta, 
  1571.  nella prima pagina del nostro dialogo,
  1572.      quando, cioe, "attachiamo bottone" con chi vogliamo parlare.
  1573.    - Ripetiamo il passo 2 e scriviamo solo una frase che dica
  1574.      "Ora vado, ciao".
  1575.    - Adesso dobbiamo preoccuparci di "agganciare" le due pagine di dialogo.
  1576.      Per farlo, torniamo alla prima pagina di dialogo. Permete il
  1577.      gadget "Seleziona": comparir
  1578.  un Lister con i nomi delle pagine di
  1579.      dialogo, nel nostro caso, ci saranno due nomi: "Partenza_Dialogo" e
  1580.      "Come_Stai". Selezionate "Partenza_Dialogo".
  1581.      La finestra del Dialog Editor, mostrer
  1582.  di nuovo la pagina che
  1583.      abbiamo editato in precedenza.
  1584.    - Adesso premete sulla frase "Ciao, Come Stai?", che comparir
  1585.      gadget di stringa (se volete, potrete anche editarla e modificarla)
  1586.      e poi premete sul bottone chiamato "Salto:", apparir
  1587.  lo stesso
  1588.      Lister che abbiamo appena incontrato. Questa volta, selezionate la
  1589.      frase "Come_Stai": il nome di questa pagina comparir
  1590.  nel gadget
  1591.      di stringa "Salto:"
  1592.      Ecco fatto! Adesso, quando, durnate il gioco, l'utente selezioner
  1593.      la frase "Ciao! Come Stai?", l'interlocutore risponder
  1594.  "Bene!".
  1595.      E' stato facile, no?
  1596.    - Giusto per sport, agganciamo anche alla frase "Come Va?", la pagina
  1597.      "Come_Stai". Premete su "Come Va?", poi su "Salto:" e selezionate
  1598.      "Come_Stai".
  1599. NOTA: una stringa Senza salto significa FINE DEL DIALOGO. Quando l'utente
  1600.       seleziona una di queste frasi, il dialogo termina.
  1601.       Nel nostro esempio abbiamo ben due frasi di questo tipo: una 
  1602.      "Adesso devo proprio andare" nella prima pagina e "Ora vado, ciao"
  1603.       nella seconda pagina.
  1604. NOTA2: per convenzione, la frase che fa "uscire" dalla modalit
  1605.  di dialogo
  1606.        
  1607.  l'ultima tra le scelte possibili. Dove potete, mantenete
  1608.        inalterata questa convenzione.
  1609. Descrizione generale.
  1610. Il Dialog Editor 
  1611.  utilizzato per creare dialoghi fra l'Omino ed un'altro
  1612. Oggetto sulla scena.  Come abbiamo avuto occasione di dire introducendo
  1613. questo editor, un dialogo 
  1614.  costituito da un numero di pagine agganciate
  1615. fra di loro; qualunque pagina pu
  1616.  essere la prima pagina:  il nome della
  1617. prima pagina verr
  1618.  passato come argomento all'istruzione ShowDialog nel
  1619. Doopsi Coder.  Tutte le altre pagine del dialogo seguono automaticamente
  1620. poich
  1621.  sono agganciate assieme mediante il campo "Salto".
  1622. Descriviamo ora il contenuto di una pagina.  In ciascuna pagina vi 
  1623. campo "Risposta" che contiene la frase che l'Oggetto dice quando 
  1624.  il suo
  1625. turno di parlare:  questo 
  1626.  il primo campo che il Player guarda quando
  1627. visualizza un dialogo.  Questo implica che se la prima pagina ha il campo
  1628. "Risposta" non vuoto, allora la conversazione viene iniziata dall'Oggetto.
  1629. Quando l'Oggetto ha finito di parlare (ovvero, quando l'utente, durante il
  1630. gioco, ha premuto il bottone del mouse per cancellare il testo che appare
  1631. sulla scena), tutte le frasi contenute nel grosso lister sotto il campo
  1632. "Risposta" vengono visualizzate nello spazio riservato alla console.  Il
  1633. Player attende che l'utente selezioni una frase e la visualizza sulla scena
  1634. (aspettando ancora che l'utente cancelli il testo prima di proseguire).
  1635. Poi il Player esamina il contenuto del campo "Salto":  se non 
  1636.  vuoto, il
  1637. Player cerca una pagina con il nome uguale alla stringa contenuta nel campo
  1638. "Salto".  Alla fine, se questa pagina 
  1639.  stata trovata il processo
  1640. ricomincia da capo:  viene visualizzata prima la risposta, poi le scelte al
  1641. di sotto di essa, e cos
  1642.  via.  Un dialogo incontra la propria fine quando
  1643. il campo "Salto" della frase selezionata 
  1644.  vuoto oppure la pagina
  1645. agganciata non viene trovata.
  1646. Per costruire un dialogo dovete prima creare alcune pagine.  Il bottone
  1647. "Nuova" sulla destra crea una nuova pagina e chiede il nome da attribuire a
  1648. tale pagina:  questo nome 
  1649.  l'identificatore che Doopsi usa per indirizzare
  1650. la pagina, quindi dovete fare attenzione a non utilizzare due volte lo
  1651. stesso nome.  Per modificare la risposta, scrivetela semplicemente nel
  1652. gadget stringa "Risposta".  Per aggiungere una nuova frase dovete premere
  1653. il bottone "Agg.":  il testo "Nuova Frase" apparir
  1654.  sia nel lister, sia nel
  1655. gadget stringa sotto di esso.  Ora potete modificare tale frase scrivendola
  1656. nel gadget stringa "Frase":  il nuovo testo rimpiazzer
  1657.  quello vecchio nel
  1658. lister.  Nel campo "Salto" va inserito il nome della pagina a cui saltare
  1659. quando la frase corrente viene selezionata durante il gioco:  potete
  1660. modificare tale nome inserendolo a mano nel gadget stringa oppure premendo
  1661. il bottone "Salto"; quest'ultimo apre un lister con tutti i nomi delle
  1662. pagine create fino ad ora:  cliccate sul nome desiderato e poi sul gadget
  1663. "Va Bene".
  1664. Ora descriviamo i rimanenti gadget nella fila in basso.  Il bottone
  1665. "Memorizza" immagazzina il contenuto del campo "Frase" nel lister (
  1666. stesso che premere il tasto Return nel campo "Frase").  Il gadget
  1667. "Seleziona" vi permette di muovervi attraverso le pagine:  quando lo
  1668. premete appare un lister con i nomi delle pagine create fino ad ora, e
  1669. potete selezionare quella da visualizzare.  Il gadget "Rimetti" annulla
  1670. l'ultima modifica apportata al campo "Frase".  Il bottone "Canc" rimuove la
  1671. frase correntemente selezionata.
  1672. I gadget nella colonna a destra hanno i seguenti significati.  Il gadget
  1673. "Nuova" crea una nuova pagina.  Il bottone "Salva" salva tutte le pagine
  1674. create sino ad ora, e il gadget "Carica" carica un insieme di pagine
  1675. salvate con il bottone precedente.  Il gadget "Nome Pag." vi permette di
  1676. cambiare il nome della pagina corrente.  Il bottone "Uccidi Pag." rimuove
  1677. solo la pagina corrente e il bottone "Uccidi Tutto" elimina tutte le
  1678. pagine create.
  1679. I Gadget:
  1680. Iniziamo con i gadget a destra sullo schermo:
  1681. Nuova             Crea una nuova pagina.
  1682. Carica            Carica un insieme di pagine.
  1683. Salva             Salva le pagine create.
  1684. Nome Pag.         Modifica il nome della pagina attuale.
  1685. Uccidi Pag.       Elimina la pagina corrente.
  1686. Uccidi Tutto      Elimina tutte le pagine create.
  1687. Ed ecco i bottoni in basso:
  1688. Agg.              Aggiunge una nuova frase.
  1689. Memorizza         Memorizza la pagina corrente.
  1690. Seleziona         Permette di selezionare una pagina di dialogo.
  1691. Rimetti           Rimette l'ultima frase modificata.
  1692. Canc              Cancella la frase attuale.
  1693. ---------------------------------------------------------------------------
  1694. ***********
  1695. Preferenze.
  1696. ***********
  1697. Doopsi 
  1698.  un programma complesso e flessibile ed alcune delle sue
  1699. caratteristiche possono essere adattate alle esigenze del programmatore.
  1700. In Doopsi, le modifiche possono essere effettuate tramite la finestra di
  1701. Preferences, suddivisa in quattro sezioni, che esamineremo singolarmente.
  1702. Selezione dei Percorsi.
  1703. In questa sezione 
  1704.  possibile scegliere le directory contenenti tutti i
  1705. file di un determinato tipo.  Creando delle avventure complesse, 
  1706.  sempre
  1707. meglio suddividere grafica, suoni e tutto il resto in varie directory.  Con
  1708. questi percorsi, ogni volta che sar
  1709.  necessario un file requester di un
  1710. determinato tipo (ad esempio per caricare un fondale) la directory verr
  1711. automaticamente impostata a quella inserita nelle preferenze.  Nel caso non
  1712. si desideri utilizzare alcune delle directory di default, sar
  1713.  sufficiente
  1714. inserire all'interno del campo una stringa vuota.
  1715. Il secondo gruppo di percorsi di default 
  1716.  dedicato al Player:  essi
  1717. servono al Player per trovare i file che sono indispensabili per iniziare
  1718. il gioco, vale a dire il file contenente la console (default:
  1719. "Doopsi:Data/panel.iff"), il file "player.dat" (default:
  1720. "Doopsi:Data/player.dat") ed infine (opzionale) il catalogo per un
  1721. linguaggio diverso dall'inglese (default:  "Doopsi:Data/player.catalog").
  1722. In questi string gadget occorre quindi inserire, oltre al percorso
  1723. completo, anche il nome dei file.  Questo permette, ad esempio, di
  1724. utilizzare una console diversa per ciascuna avventura.
  1725. L'ultimo string gadget, chiamato "Player", contiene il percorso completo ed
  1726. il nome del programma "DoopsiPlayer":  questo serve all'Editor per trovare
  1727. il Player quando viene premuto il bottone "Prova Gioco" nella Finestra
  1728. Principale.
  1729. A fianco del gadget di stringa contenente il path, c'
  1730.  un piccolo gadget
  1731. con scritto "R" (ricerca), che aprir
  1732.  un path requester con il quale sar
  1733. possibile cercare la directory che desideriamo impostare come default.
  1734. Manipolazione dei Colori.
  1735. In questa sezione 
  1736.  possibile caricare, editare e salvare i colori
  1737. dell'interfaccia dell'editor di Doopsi.  Premendo "Carica" sar
  1738.  possibile
  1739. caricare i primi quattro colori di una qualsiasi immagine IFF, con "Salva"
  1740. potremo salvare la palette e con "Edita" apparir
  1741.  un Palette requester con
  1742. il quale sar
  1743.  possibile modificare direttamente i colori.
  1744. Scelta dei nomi di Default.
  1745. Questa 
  1746.  forse la sezione pi
  1747.  importante delle preferenze.  Come dovreste
  1748. sapere, Doopsi utilizza per il personaggio dell'avventura dei nomi di
  1749. default necessari perch
  1750.  il Player utilizzi le animazioni corrette quando
  1751. necessario.  Potete trovare la spiegazione di come questo meccanismo
  1752. funzioni nella sezione "Alcune note su come il Player trova l'Omino" posta
  1753. immediatamente dopo la sezione del manuale realtiva alla Finestra
  1754. Principale.  Seguono i nomi dei campi ed il loro significato:
  1755. NOME         VALORE DEF.  DESCRIZIONE
  1756. Root         Man          E' il nome "base" mediante il quale sono definiti
  1757.                           i nomi delle animazioni dell'Omino.
  1758. Left         L            Questi quattro valori determinano 
  1759. Right        R            le animazioni del personaggio nelle varie 
  1760. Up           U            direzioni. Ad es. "ManU" significa 
  1761. Down         D            "animazione Omino che cammina verso l'alto"
  1762. Talk         Talk         Questa 
  1763.  una specie di "seconda root" ed
  1764.                           
  1765.  il suffisso che viene aggiunto DIRETTAMENTE
  1766.                           alla Root vera e propria per definire le
  1767.                           animazioni del personaggio mentre parla.  A
  1768.                           questa root verr
  1769.  poi aggiunto normalmente un
  1770.                           suffisso Left, Right, Up o Down.  Per es.  il
  1771.                           personaggio che parla a sinistra 
  1772.  definito cos
  1773.                           ManTalkL.
  1774.                                    
  1775. Questi nomi, essendo solo "interni" al Player, potevano anche rimanere
  1776. "rigidi" e non essere modificabili, ma abbiamo preferito permetterne la
  1777. modifica, per poter rendere tutto ancora pi
  1778.  leggibile.  Infatti, potrete
  1779. modificare questi nomi, assegnando valori pi
  1780.  significativi.  Facciamo un
  1781. esempio:
  1782.   Root = Uomo
  1783.   Talk = _che_parla
  1784.   L    = _a_sinistra
  1785.   R    = _a_destra
  1786. Il famigerato ManTalkL diventer
  1787.  "Uomo_che_parla_a_sinistra", sicuramente
  1788.  elegante.  Ma attenzione, questo 
  1789.  solo un esempio:  i nomi interni
  1790. degli Oggetti in Doopsi possono essere di massimo 30 caratteri.
  1791. Scena di Partenza.
  1792. Con questa ultima parte della finestra di Preferences 
  1793.  possibile definire
  1794. il nome della prima scena che verr
  1795.  mostrata all'avvio dell'avventura.
  1796. I bottoni USA/CARICA/SALVA/ANNULLA
  1797. I bottoni presenti in fondo alla finestra di Preferences permettono di
  1798. usare le preferenze appena inserite ("USA"), salvarne le preferenze attuali
  1799. ("SALVA"), caricare una configurazione precedentemente salvata ("CARICA") e
  1800. di annullare i nuovi settaggi ("ANNULLA").
  1801. Nota:  le preferenze vengono SEMPRE salvate in un file completo di Doopsi,
  1802. per permettere la gestione di pi
  1803.  avventure differenti contemporaneamente
  1804. con settaggi diversi.
  1805. ---------------------------------------------------------------------------
  1806. ********************************
  1807. Appendice A:  Istruzioni Doopsi.
  1808. ********************************
  1809. Nella seguente lista oggetti e scene sono identificati utilizzando il loro
  1810. nome interno, quindi Oggetto rappresenta il nome interno dell'Oggetto
  1811. stesso, e cos
  1812.  via.
  1813. AddStatus Oggetto, Valore
  1814. Aggiunge Valore al campo di stato dell'oggetto selezionato.  Il valore
  1815. totale dello stato di un oggetto 
  1816.  compreso fra -32767 e +32768.
  1817. ChangeDescription Oggetto, Testo
  1818. Cambia il nome dell'oggetto in Testo.  Questo nome 
  1819.  quello che appare
  1820. sulla linea di testo della console quando l'oggetto viene selezionato sulla
  1821. scena.
  1822. ChangeScene Scena
  1823. Se Scena 
  1824.  stata trovata questa istruzione esce dalla scena corrente e
  1825. visualizza la nuova scena.
  1826. ChangeShape Oggetto, Immagine
  1827. Cambia l'immagine attuale dell'Oggetto selezionato.  Se l'Oggetto 
  1828. visualizzato sulla scena la nuova immagine verr
  1829.  disegnata e rimpiazzer
  1830. quella vecchia.  Se l'oggetto 
  1831.  nell'inventario questo comando modificher
  1832. l'immagine di inventario (e la ridisegner
  1833. ).  Infine, se l'Oggetto non 
  1834. visualizzato questa istruzione modificher
  1835.  solo il valore dell'immagine
  1836. attuale dell'Oggetto stesso.  Questa istruzione non funziona con gli
  1837. AnimObject o con le Zone Vuote (per ovvi motivi) quando sono disegnate
  1838. sulla scena, ma le loro immagini di inventario potranno comunque essere
  1839. modificate.  Con ChangeShape l'immagine attuale dell'Oggetto 
  1840.  cancellata
  1841. perch
  1842.  la nuova immagine viene ridisegnata immediatamente sopra essa:
  1843. questo implica che le due immagini devono avere le medesime dimensioni.
  1844. ChangeShapeBG Oggetto, Immagine
  1845. Questo comando 
  1846.  simile a ChangeShape, ma prima di disegnare la nuova
  1847. immagine il Player cancella l'immagine attuale dell'Oggetto ridisegnando lo
  1848. sfondo.  Questo elimina la limitazione presente in ChangeShape che la nuova
  1849. immagine debba avere dimesioni uguali o maggiori di quella vecchia.
  1850. ChangeStatus Oggetto, Valore
  1851. Scrive Valore nel campo di stato dell'Oggetto selezionato.  Lo stato pu
  1852. essere 0 o 1 per rappresentare una porta chiusa o aperta rispettivamente, e
  1853.  via...  Se l'oggetto 
  1854.  una moneta questo campo pu
  1855.  essere usato per
  1856. memorizzare il numero di monete che l'Omino possiede.  Il valore che il
  1857. campo di stato di un oggetto pu
  1858.  contenere va da -32767 a +32768.
  1859. Close Oggetto
  1860. Si veda l'istruzione Open.
  1861. ConsoleHide
  1862. Spegne la console.
  1863. ConsoleShow
  1864. Accende la console.
  1865. Drop Oggetto
  1866. Si veda l'istruzione Open.
  1867. Else viene usato in un gruppo If:  se la condizione 
  1868.  falsa allora il
  1869. Player eseguir
  1870.  tutte le istruzioni che seguono il comando Else fino al pi
  1871. vicino EndIf (o fino alla fine del programma se quest'ultimo non 
  1872. presente).
  1873. EndIf
  1874. Questa istruzione termina un gruppo If.  Potete avere fino a 10 gruppi If
  1875. nidificati.
  1876. EraseInventory Oggetto
  1877. Rimuove l'Oggetto dalla lista dell'inventario e cancella la sua immagine di
  1878. inventario dalla console.
  1879. EraseObject Oggetto
  1880. Rimuove l'Oggetto dalla scena.  Questa istruzione non si applica agli
  1881. AnimObject:  in questo caso l'utente deve utilizzare StopAnim.
  1882. GetInventory Oggetto
  1883. Aggiunge l'Oggetto alla lista dell'inventario e disegna la sua immagine di
  1884. inventario attuale sulla console.  Questa istruzione fallisce se la lista
  1885. dell'inventario 
  1886.  piena, in quanto essa pu
  1887.  contenere solo un numero
  1888. limitato di oggetti.
  1889. IfOnScene Oggetto
  1890. Restituisce Vero se l'Oggetto 
  1891.  disegnato sulla scena.
  1892. IfSceneIs Scena
  1893. Restituisce Vero se l'Omino 
  1894.  attualmente nella scena Scena.
  1895. IfStatus Oggetto, Stato
  1896. Restituisce Vero se il campo di stato dell'Oggetto selezionato 
  1897.  uguale a
  1898. Stato.
  1899. IfUsedWith Oggetto
  1900. Restituisce Vero se l'oggetto corrente 
  1901.  usato con Oggetto.  Questo
  1902. significa che avete prima selezionato il bottone Usa e cliccato una volta
  1903. su Oggetto e poi, dopo che il testo "Usa Oggetto con..." 
  1904.  apparso sulla
  1905. console, avete cliccato due volte sull'oggetto corrente:  questo attiva il
  1906. programma Doopsi relativo all'azione Usa dell'oggetto corrente dove
  1907. dovrebbe trovarsi questa istruzione.  Affinch
  1908.  cliccando su Oggetto appaia
  1909. la scritta "con..." ed il Player attenda la selezione di un altro oggetto 
  1910. necessario che Oggetto abbia UseWith come prima istruzione del programma
  1911. relativo all'azione Usa.
  1912. InvToScene Oggetto
  1913. Preleva l'Oggetto selezionato dall'inventario e lo disegna sulla scena alle
  1914. coordinate contenute in Oggetto:  tali coordinate sono inizializzate quando
  1915. l'Oggetto viene posizionato sulla scena mediante l'Editor.  Se l'oggetto 
  1916. un AnimObject l'animazione verr
  1917.  automaticamente visualizzata.
  1918. InvToSpot Oggetto, Spot
  1919. Uguale a InvToScene, ma l'Oggetto verr
  1920.  disegnato alle coordinate dello
  1921. Spot.
  1922. Look Oggetto
  1923. Si veda l'istruzione Open.
  1924. ManDirection Estensione
  1925. Forza l'Omino a girarsi nella direzione selezionata:  Estensione 
  1926. delle quattro estensioni indicanti una direzione che l'utente pu
  1927. modificare mediante l'editor di preferenze.
  1928. ManTalkColour Valore
  1929. Con questa istruzione l'utente sceglie il registro colore da usare per il
  1930. testo in tutte le successive istruzioni ShowText o ShowDialog quando
  1931. l'Omino parla.
  1932. MoveMan Spot
  1933. Questa istruzione permette all'utente di forzare l'Omino a muoversi verso
  1934. lo Spot desiderato sulla scena.
  1935. MoveObject Oggetto, Spot
  1936. Muove l'Oggetto dalla sua posizione attuale sulla scena alla posizione
  1937. specificata da Spot.  Durante il movimento un AnimObject verr
  1938.  sostituito
  1939. all'immagine corrente dell'Oggetto se tale AnimObject 
  1940.  stato
  1941. precedentemente selezionato mediante l'istruzione SetMoveAnim.
  1942. MoveObjectOnPath Oggetto, Spot
  1943. Questo 
  1944.  simile a MoveObject con la differenza che l'Oggetto selezionato si
  1945. muover
  1946.  seguendo il percorso della scena corrente e si fermer
  1947.  al nodo pi
  1948. vicino allo Spot selezionato.  Un'altra leggera differenza 
  1949.  che si suppone
  1950. che l'hot-spot dell'oggetto (o, se presente, dell'animazione che lo
  1951. sostituisce) sia posizionato nell'angolo in basso a sinistra
  1952. dell'immagine.
  1953. MoveObjectToObject Oggetto1, Oggetto2
  1954. Questo 
  1955.  simile a MoveObject, e muove Oggetto1 alla posizione specificata
  1956. da Oggetto2.
  1957. MoveObjToObjOnPath Oggetto1, Oggetto2
  1958. Questo 
  1959.  simile a MoveObjectOnPath, e muove Oggetto1 alla posizione
  1960. specificata da Oggetto2.
  1961. MusicPause
  1962. Sospende momentaneamente la musica.  Per farla ripartire basta utilizzare
  1963. un'altra volta questo comando.
  1964. MusicPlay File
  1965. Suona il contenuto del File.  File deve essere un modulo tracker standard.
  1966. MusicStop
  1967. Interrompe la musica.
  1968. ObjTalkColour Valore
  1969. Questo 
  1970.  simile a ManTalkColour, ma vi permette di scegliere il registro
  1971. colore del testo dell'oggetto a cui l'Omino sta parlando durante una
  1972. istruzione ShowDialog.
  1973. Open  Oggetto
  1974. Close Oggetto
  1975. Look  Oggetto
  1976. Take  Oggetto
  1977. Drop  Oggetto
  1978. Push  Oggetto
  1979. Pull  Oggetto
  1980. Talk  Oggetto
  1981. Use   Oggetto
  1982. Queste istruzioni eseguono il codice Doopsi contenuto nella corrispondente
  1983. azione di Oggetto.  Esse sono gestite come sottoprogrammi, e potete
  1984. nidificare fino ad un massimo di 10 sottoprogrammi.
  1985. Pull Oggetto
  1986. Si veda l'istruzione Open.
  1987. Push Oggetto
  1988. Si veda l'istruzione Open.
  1989. PutObject Oggetto, Spot
  1990. Disegna l'Oggetto alla posizione dello Spot.  Oggetto pu
  1991.  anche essere una
  1992. Zona Vuota.
  1993. SceneToInv Oggetto
  1994. Preleva l'Oggetto selezionato dalla scena e lo ripone nell'inventario.  Se
  1995. l'oggetto 
  1996.  un AnimObject l'animazione verr
  1997.  automaticamente fermata.
  1998. SetManName Oggetto
  1999. Questa istruzione serve per cambiare le animazioni dell'Omino:  la radice
  2000. del nome (cio
  2001.  dopo aver rimosso qualunque estensione) dell'Oggetto 
  2002. utilizzata per costruire i nomi dell'Omino fino a quando SetManName viene
  2003. chiamata nuovamente o 
  2004.  invocata da un nodo del percorso.
  2005. SetMoveAnim AnimObject
  2006. L'AnimObject selezionato verr
  2007.  usato come animazione per la seguente
  2008. istruzione MoveObject o simili (MoveObjectOnPath, MoveObjectToObject,
  2009. MoveObjToObjOnPath).  Se il nome dell'AnimObject termina con una delle
  2010. quattro estensioni (indicanti le quattro direzioni) allora il Player 
  2011. autorizzato a scegliere la direzione opportuna prima di muovere l'oggetto:
  2012. se tale direzione non 
  2013.  fornita verr
  2014.  utilizzata l'immagine corrente
  2015. dell'oggetto, e quindi la selezione dell'animazione sar
  2016.  totalmente
  2017. ignorata.
  2018. SetTalkAnim AnimObject
  2019. Questa istruzione comunica al Player che, quando il prossimo ShowDialog
  2020.  eseguito, deve usare AnimObject per mostrare che l'oggetto
  2021. selezionato sta parlando.  Se l'utente termina il nome interno di
  2022. AnimObject mediante una delle quattro estensioni indicanti una direzione
  2023. (tali estensioni possono essere modificate usando l'editor di preferenze),
  2024. allora il Player rimuove questa estensione da tale nome interno e sceglie
  2025. la direzione appropriata (dipendente dalla posizione relativa dell'oggetto
  2026. rispetto all'Omino).  Poi aggancia l'estensione relativa alla direzione
  2027. scelta al nome interno di AnimObject e cerca l'oggetto risultante.  Se
  2028. questo viene trovato l'animazione corrispondente sar
  2029.  visualizzata quando
  2030. l'oggetto parla.
  2031. ShowAnim AnimObject
  2032. Questa istruzione visualizza l'animazione contenuta in AnimObject.  Tale
  2033. animazione verr
  2034.  posizionata alle coordinate interne di AnimObject:  queste
  2035. coordinate vengono inizializzate quando l'AnimObject 
  2036.  posizionato sulla
  2037. scena mediante l'Editor (e rimangono memorizzate anche se l'AnimObject
  2038. viene rimosso dalla scena in un secondo tempo).  Il numero di animazioni
  2039. che il Player pu
  2040.  visualizzare contemporaneamente 
  2041.  limitato.
  2042. ShowAnimAtSpot AnimObject, Spot
  2043. Visualizza l'animazione contenuta in AnimObject alle coordinate di Spot.
  2044. ShowDialog Dialogo
  2045. Questo comando inizia una conversazione tra l'Omino e l'oggetto
  2046. selezionato.  Dialogo 
  2047.  la prima pagina della conversazione.  Se
  2048. l'animazione che mostra l'Omino che parla viene trovata essa sar
  2049. visualizzata; potete scegliere un'animazione che mostra l'oggetto che parla
  2050. mediante SetTalkAnim.  I colori dei testi dell'Omino e dell'oggetto vengono
  2051. scelti mediante le istruzioni ManTalkColour e ObjTalkColour
  2052. rispettivamente.
  2053. ShowPicture File
  2054. Nasconde momentaneamente la scena e la console per visualizzare il
  2055. contenuto del File.  File deve essere un'immagine Iff ILBM.  Se l'immagine
  2056.  grande dell'area dello schermo potete muoverla spostando il mouse
  2057. contro i bordi dello schermo.  Per ritornare allo stato precedente premere
  2058. il tasto sinistro del mouse.
  2059. ShowText Testo
  2060. Visualizza Testo.  La posizione e la suddivisione in linee del testo
  2061. verranno determinate automaticamente mediante la posizione dell'Omino sulla
  2062. scena e la larghezza della scena stessa.  La direzione dell'Omino determina
  2063. quale delle quattro animazioni verr
  2064.  visualizzata, se presente, per far
  2065. parlare l'Omino; se l'animazione non 
  2066.  presente il Player non si lamenter
  2067. e si limiter
  2068.  a lasciare immutato l'Omino.  Il colore del testo pu
  2069.  essere
  2070. cambiato utilizzando l'istruzione ManTalkColour.  Per cancellare il testo 
  2071. necessario premere il tasto sinistro del mouse.
  2072. SoundPlay File
  2073. Suona il contenuto del File.  File deve essere un campionamento Iff 8SVX
  2074. standard.
  2075. StopAnim AnimObject
  2076. Ferma l'animazione contenuta in AnimObject e la rimuove dalla scena.
  2077. Take Oggetto
  2078. Si veda l'istruzione Open.
  2079. Talk Oggetto
  2080. Si veda l'istruzione Open.
  2081. Use Oggetto
  2082. Si veda l'istruzione Open.
  2083. UseWith
  2084. Questa istruzione deve essere la prima nel programma dell'azione Usa di un
  2085. oggetto:  essa comunica al Player che l'oggetto corrente deve essere usato
  2086. insieme ad un altro oggetto; dunque il Player visualizza il testo "Usa
  2087. Oggetto con..." e aspetta che l'utente selezioni un altro oggetto.  Si veda
  2088. anche IfUsedWith.
  2089. ---------------------------------------------------------------------------
  2090. *************************
  2091. Appendice B:  La console.
  2092. *************************
  2093. Lo schema della console incluso nel pacchetto di Doopsi mostra le diverse
  2094. zone controllate dal Player:  ci sono i nove bottoni delle azioni sulla
  2095. sinistra, due frecce verticali per far scorrere l'inventario e, fra queste,
  2096. un piccolo bottone usato per accedere all'interfaccia per il disco; la
  2097. parte destra 
  2098.  occupata dall'inventario e, ultimo ma non meno importante,
  2099. il rettangolo all'estremit
  2100.  superiore 
  2101.  la linea di testo dove appariranno
  2102. tutti i messaggi.  A proposito:  ciascun quadratino dell'inventario misura
  2103. 32 * 32 pixel, quindi l'utente deve tener conto di queste dimensioni quando
  2104. progetta le immagini di inventario per i suoi oggetti.  Sotto la console,
  2105. sullo stesso schermo 
  2106.  rappresentata l'interfaccia per il disco:  l'area
  2107.  vasta sulla sinistra 
  2108.  quella in cui comparir
  2109.  la lista dei file e
  2110. sotto di essa vi 
  2111.  lo spazio dove l'utente inserisce il percorso di ricerca
  2112. dei file stessi; poi vi sono due frecce verticali per scorrere la lista dei
  2113. file e cinque bottoni.
  2114. Lo schermo contenente la console e l'interfaccia disco deve essere in bassa
  2115. risoluzione non interlacciato e l'utente pu
  2116.  disegnarci sopra tutto quello
  2117. che desidera, ma deve ricordare di rispettare le dimensioni delle zone
  2118. delimitate.  Si ricordi anche che i quadratini dell'inventario, la linea di
  2119. testo e l'area dedicata alla lista dei file vengono riempite dal Player con
  2120. il colore numero 0.  Un altro suggerimento:  tutte le immagini di
  2121. inventario devono avere la medesima palette, quella della console, in
  2122. quanto appariranno sulla console e quest'ultima rimane fissa per tutta la
  2123. durata del gioco; invece le altre immagini possono avere palette differenti
  2124. poich
  2125.  permesso cambiare i colori passando da una scena all'altra.
  2126. L'interfaccia del disco.
  2127. E' come tutti gli altri requester a cui siete abituati:  il percorso di
  2128. ricerca viene inserito nel gadget stringa situato nella parte bassa dello
  2129. schermo e i nomi dei file vengono elencati nell'area sopra di esso.  Per
  2130. caricare un file l'utente deve selezionarne il nome con il taso sinistro
  2131. del mouse e poi cliccare sul bottone Carica alla destra dello schermo.  Per
  2132. salvare un file l'utente deve selezionarne il nome e poi cliccare sul
  2133. bottone Salva:  apparir
  2134.  un cursore per permettere all'utente di modificare
  2135. il nome del file; quando le eventuali modifiche sono state effettuate basta
  2136. premere Return per salvare.  Per salvare una nuova partita cliccate su
  2137. Salva come prima, senza selezionare alcun nome.
  2138. I nomi che compaiono nel lister ed il percorso di ricerca sono limitati ad
  2139. una lunghezza di 25 caratteri (penso sia abbastanza per la maggior parte
  2140. delle applicazioni).
  2141. I cinque bottoni sulla destra sono denominati, in ordine:  Carica, Salva,
  2142. Gioca, Workbench ed Esci.  I bottoni Carica e Salva sono gi
  2143.  stati
  2144. descritti.  Il bottone Gioca permette di ritornare allo schermo della
  2145. console e di continuare il gioco.  Il bottone denominato Workbench attiva
  2146. il multitasking:  il Player scompare e l'utente pu
  2147.  tornare alla partita
  2148. interrotta selezionando la voce Doopsi-GS nel menu Tools del Workbench.  Il
  2149. bottone Esci..., lascio a voi immaginare lo scopo di quello.
  2150. ---------------------------------------------------------------------------
  2151. ****************************
  2152. Appendice C:  Dentro Doopsi.
  2153. ****************************
  2154. Nel seguito user
  2155.  il termine Doopsi quando descriver
  2156.  come funzionano
  2157. alcune parti comuni all'Editor ed al Player.
  2158. Struttura degli oggetti di Doopsi.
  2159. Per capire come Doopsi agisce e per ottenere il meglio da lui dovete
  2160. conoscere almeno l'essenziale della struttura degli oggetti Doopsi.
  2161. Iniziamo con una Scena:
  2162.    nome interno
  2163.    nome file dello sfondo
  2164.    lista di Oggetti agganciati (nomi interni)
  2165. Il nome interno 
  2166.  un nome privato che l'utente attribuisce alla Scena ed 
  2167. usato da Doopsi per riconoscere la Scena stessa.  Il nome dello sfondo 
  2168. nome (completo di percorso) del file Iff contenente l'immagine da
  2169. visualizzare.  Segue poi una lista dei nomi interni degli Oggetti che
  2170. devono essere posizionati sulla Scena.
  2171. Veniamo ora ad un Oggetto. Vi sono tre tipi di oggetti, ma tutti
  2172. condividono la medesima struttura:
  2173. a) gli Oggetti tout-court sono semplicemente oggetti nel senso usuale del
  2174. termine e le loro immagini verranno disegnate sulla scena.
  2175. b) gli AnimObject contengono un'animazione che verr
  2176.  visualizzata sulla
  2177. scena.
  2178. c) le Zone Vuote sono costituite da un rettangolo (che non sar
  2179.  disegnato)
  2180. senza immagini.
  2181. Segue la struttura generale di un Oggetto:
  2182.    nome
  2183.    nome interno
  2184.    coordinata X
  2185.    coordinata Y
  2186.    Larghezza
  2187.    Altezza
  2188.    stato
  2189.    lista di immagini
  2190.    nove programmi di azione
  2191. Il nome 
  2192.  che appare sulla linea di testo del Player quando il
  2193. puntatore 
  2194.  sull'oggetto.  Il nome interno 
  2195.  un nome privato (possibilmente
  2196. unico) che l'utente assegna all'oggetto ed 
  2197.  usato da Doopsi per
  2198. riconoscere l'oggetto stesso:  se l'utente utilizza pi
  2199.  volte lo stesso
  2200. nome interno l'Editor non si lamenta, ma potreste ottenere risultati
  2201. imprevedibili (di solito Doopsi si ferma al primo oggetto che abbia il nome
  2202. interno richiesto).  Le coordinate X e Y specificano la posizione in cui
  2203. disegnare l'oggetto sullo schermo.  Larghezza ed Altezza sono le
  2204. dimensioni dell'oggetto.  Lo stato 
  2205.  un valore intero con nessun
  2206. significato particolare:  pu
  2207.  essere usato per memorizzare lo stato
  2208. Acceso-Spento di una lampadina, o lo stato Aperto-Chiuso di una porta, o il
  2209. numero di monete che l'Omino possiede, e cos
  2210.  via...  Segue poi una lista
  2211. di tutte le immagini (nome del file completo di percorso del file Iff
  2212. contenente l'immagine) che l'utente ha agganciato all'Oggetto.  Infine vi
  2213. sono nove programmi (contenenti del codice Doopsi), uno per ciascun bottone
  2214. della console del Player.
  2215. Un AnimObject differisce dalla precedente descrizione per il fatto che
  2216. possiede anche una stringa di interi che specifica la sequenza in cui le
  2217. immagini verranno visualizzate.  Larghezza ed Altezza conterranno la
  2218. massima larghezza ed altezza rispettivamente di tutte le immagini
  2219. selezionate per l'animazione.
  2220. Una Zona Vuota differisce per il fatto che non verr
  2221.  disegnata sulla scena,
  2222. ma la sua posizione sar
  2223.  comunque rivelata da Doopsi.  La lista di
  2224. immagini, per
  2225. , non sar
  2226.  necessariamente vuota in quanto l'utente potrebbe
  2227. aver bisogno, ad esempio, di riporre questo oggetto nell'inventario (e
  2228. quindi necessita di un'immagine di inventario), e cos
  2229.  via.
  2230. ---------------------------------------------------------------------------
  2231. **********
  2232. Il Player.
  2233. **********
  2234. La sequenza di avviamento.
  2235. Quando lanciate il Player, esso cerca prima di tutto il file principale di
  2236. Doopsi e, da questo momento in poi, tutte le azioni che intraprende sono
  2237. determinate dai dati che trova in tale file.  Dal file principale ricava il
  2238. percorso dove cercare la "console" (la parte bassa dello schermo dove
  2239. appaiono i bottoni e l'inventario), contenuta nel file "panel.iff", e il
  2240. file "player.dat".  Se non trova uno qualunque dei pezzi che ho appena
  2241. elencato si lamenta ed esce.
  2242. Supponendo che abbia svolto con successo i precedenti passi, il Player
  2243. cerca ora nel file Doopsi (il file principale che contiene tutta la
  2244. struttura del gioco) le animazioni del protagonista:  devono esserci
  2245. quattro animazioni, una per ciascuna direzione, con i nomi di default che
  2246. l'utente ha scelto.  Poich
  2247.  questi dati sono vitali (come fate a giocare se
  2248. non vedete dove siete?) il Player si ferma ed esce se non ha trovato tutto
  2249. quello che stava cercando.  Questo significa che esso deve trovare prima di
  2250. tutto i quattro Oggetti che contengono tali animazioni e poi deve trovare
  2251. anche tutte le immagini necessarie.  A proposito, se l'utente fornisce
  2252. anche le animazioni per far parlare il protagonista esse verranno caricate:
  2253. in questo caso non 
  2254.  necessario fornire quattro animazioni se l'utente non
  2255. lo ritiene necessario poich
  2256.  tali animazioni vengono utilizzate solo se
  2257. presenti.  Ma ricordate, se l'utente chiede al Player di usare
  2258. un'animazione questa animazione deve essere completa, vale a dire che il
  2259. Player deve essere in grado di trovare tutte le immagini necessarie.
  2260. Questa 
  2261.  una regola generale.
  2262. Ed ora veniamo al passo successivo:  fino ad ora il Player 
  2263.  stato in grado
  2264. di visualizzare la console, ma la met
  2265.  superiore dello schermo 
  2266.  ancora
  2267. terribilmente nera.  Allora esso cerca nel file Doopsi la scena che avete
  2268. scelto come prima scena usando l'editor di Preferenze:  se l'utente si 
  2269. dimenticato di includere almeno una scena con tale nome allora il Player
  2270. non ha nient'altro da fare, perch
  2271.  non sa da quale scena iniziare il gioco,
  2272. ed esce ("ancora!" potreste esclamare, ma non penso che questo
  2273. comportamento sia dovuto a permalosit
  2274. ).  Ovviamente esce anche se la scena
  2275.  stata trovata ma non 
  2276.  presente il file Iff che contiene lo sfondo.
  2277. D'ora in poi il Player si lamenter
  2278.  soltanto, senza uscire, se non trover
  2279. qualcosa.  Errori comuni sono "Oggetto non trovato", se l'oggetto che
  2280. l'utente richiede non 
  2281.  nella lista, o "File non trovato" se non trova il
  2282. file contenente un'immagine o uno sfondo, ecc...  In questi casi non
  2283. succede nulla ed il gioco continua indisturbato.  I messaggi di errore
  2284. vengono visualizzati sulla console, nella stessa linea in cui appare la
  2285. scritta "Vai verso"; per eliminare il messaggio e ritornare al gioco
  2286. l'utente deve premere il tasto destro del mouse.
  2287. Se una scena 
  2288.  stata caricata con successo lo sfondo verr
  2289.  visualizzato e
  2290. tutti gli oggetti in essa contenuti saranno disegnati sullo schermo:  gli
  2291. AnimObject sono automaticamente riconosciuti ed animati.  Supponendo che
  2292. sappiate gi
  2293.  (dal manuale dell'Editor) cos'
  2294.  un percorso Doopsi, vi dico
  2295. che il Player cerca prima un nodo nel percorso della scena corrente con il
  2296. nome uguale a quello della scena da cui proviene, poi, se questo fallisce,
  2297. cerca un nodo che ha lo stesso nome della scena corrente; infine disegna
  2298. l'Omino (che guarda l'utente) vicino al nodo trovato.
  2299.  anche qualcosa di leggermente tecnico che dovete sapere a proposito dei
  2300. nodi:  questi vi permettono di fornire una animazione diversa da quella di
  2301. default per l'Omino e di decidere dove cambiare scena; inoltre il percorso
  2302. della scena pu
  2303.  essere influenzato da condizioni contenute nei suoi nodi.
  2304. Il Player legge il nome delle animazioni "custom", le condizioni ed i cambi
  2305. di scena da un nodo quando l'Omino ha i piedi sopra quel nodo:
  2306. l'animazione custom viene visualizzata solo quando l'Omino cammina dal nodo
  2307. attuale a quello successivo (cos
  2308. , se l'Omino si ferma sul nodo attuale voi
  2309. non potete vedere tale animazione e dovete fornire un fotogramma di riposo
  2310. all'animazione precedente), ma le condizioni e i cambi di scena sono letti
  2311. ed eseguiti immediatamente quando l'Omino arriva sul noto attuale.  Per
  2312. riassumere:  le animazioni custom di un nodo vengono eseguite quando
  2313. l'Omino si allontana da quel nodo, ma le condizioni e i cambi di scena
  2314. vengono eseguiti quando l'Omino arriva a quel nodo.
  2315. Alla fine il gioco inizia e voi diventate i protagonisti.
  2316. Errori.
  2317. Segue una breve descrizioni dei possibili errori.  I messaggi di errore
  2318. compaiono nella riga di testo e vengono cancellati premendo il tasto destro
  2319. del mouse.  Se l'errore 
  2320.  del tipo "... non trovato ..." il Player stampa
  2321. anche il nome dell'oggetto (o del file, ecc.) che non ha trovato.
  2322. Oggetto non trovato:    l'oggetto non 
  2323.  nella lista principale.
  2324. Scena non trovata:      la scena che avete richiesto non 
  2325.  nella lista.
  2326. File non trovato:       non penso ci sia bisogno di spiegazioni per
  2327.                         questo.
  2328. Spot non trovato:       l'utente ha richiesto uno spot inesistente.
  2329. Inventario pieno:       la lista dell'inventario 
  2330.  capiente ma limitata,
  2331.                         quindi se l'utente vi ripone troppi oggetti essa
  2332.                         pu
  2333.  traboccare.
  2334. Niente spazio per l'animazione:  il numero di AnimObject che il Player pu
  2335.                                  gestire contemporaneamente 
  2336.  limitato.
  2337. Dialogo non trovato:    l'utente ha richiesto una pagina di dialogo che non
  2338.                         esiste.
  2339. Directory non trovata:  questo messaggio compare nel file lister: l'utente
  2340.                         ha specificato un percorso inesistente.
  2341. Niente spazio per l'oggetto:  il numero di oggetti che una scena pu
  2342.                               contenere 
  2343.  limitato.
  2344. Profondit
  2345.  eccessiva:   l'utente ha tentato di disegnare sulla scena un
  2346.                         oggetto con profondit
  2347.  maggiore di quella della
  2348.                         scena stessa.
  2349. EndIf senza If:         in un programma Doopsi vi 
  2350.  un'istruzione EndIf
  2351.                         senza il corrispondente comando If.
  2352. File Iff non valido:    dovete fornire un file Iff standard quando
  2353.                         esplicitamente richiesto, ad es.: nelle istruzioni
  2354.                         ShowPicture e SoundPlay.
  2355. Stack pieno:            si possono nidificare fino a 10 sottoprogrammi: se
  2356.                         ne aggiungete uno di troppo lo stack si esaurisce.
  2357. ---------------------------------------------------------------------------
  2358. *****************
  2359. Limiti di Doopsi.
  2360. *****************
  2361. Qui sono riportate le limitazioni attuali di Doopsi:  le diciture
  2362. "Shareware" e "Special" indicano le limitazioni per le due versioni
  2363. dimostrative.
  2364. Editor:
  2365. Tipo                    numero Max
  2366. ~~~~                    ~~~~~~~~~~
  2367. scene                   200         (Shareware: 3;  Special: 5)
  2368. oggetti                 500         (Shareware: 30; Special: 40)
  2369. pagine di dialogo       100         (Shareware: 5;  Special: 8)
  2370. linee per pagina di     12          (Shareware: 3;  Special: 4)
  2371.  dialogo
  2372. immagini per oggetto    15
  2373. oggetti sulla scena     20
  2374.  contemporaneamente
  2375. lunghezza nomi interni  30
  2376. Player: gli stessi dell'Editor pi
  2377. Tipo                    numero Max
  2378. ~~~~                    ~~~~~~~~~~
  2379. animobject sulla scena  10
  2380.  contemporaneamente
  2381. oggetti in inventario   500         (Shareware: 30; Special: 40)
  2382. sottoprogrammi          10
  2383.  nidificati
  2384. gruppi If nidificati    10
  2385.